Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2009, 11:46   #1
JamS007
Пользователь
 
Регистрация: 09.11.2008
Сообщений: 68
По умолчанию Банальный вопрос по Visual Studio

Здравствуйте,

до недавнего времени программировал в С++ Builder, а теперь решил перейти на всеми хваленую Visual Studio. И сразу такой вопрос:

- Почему обработчики событий в Visual-e записываются в *.h файлы а не в *.CPP, так как этого требует стандарт С++?

- Если я не прав, то для чего служит файл *.СРР?

Спасибо за внимание и терпение...

Последний раз редактировалось JamS007; 24.05.2009 в 11:55.
JamS007 вне форума Ответить с цитированием
Старый 24.05.2009, 11:56   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от JamS007 Посмотреть сообщение
- Почему обработчики событий в Visual-e записываются в *.h файлы а не в *.CPP, так как этого требует стандарт С++?
Вы вообще о чем? Какие события? Не помню, чтобы в языке поддерживался какой-то механизм, который можно назвать событием, а потому в стандарте этому взяться не от куда.
pu4koff вне форума Ответить с цитированием
Старый 24.05.2009, 11:59   #3
JamS007
Пользователь
 
Регистрация: 09.11.2008
Сообщений: 68
По умолчанию

pu4koff

к примеру: событие - нажатие на кнопку. Обработчик события - вывод MessageBox-a.
JamS007 вне форума Ответить с цитированием
Старый 24.05.2009, 12:05   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от JamS007 Посмотреть сообщение
pu4koff

к примеру: событие - нажатие на кнопку. Обработчик события - вывод MessageBox-a.
Так в билдере все эти обработчики в *.cpp. К языку это никакого отношения не имеет. Зависит от используемой библиотеки. На чистом WinAPI обычно оконная процедура в *.cpp, в MFC так же события все эти обрабатываются в *.cpp. Что в этом не нравится?
*.h - обычно содержит только интерфейсную часть: описание классов, прототипы функций, глобальные константы,...
*.cpp - реализация всего того, что описано в *.h
pu4koff вне форума Ответить с цитированием
Старый 24.05.2009, 12:12   #5
JamS007
Пользователь
 
Регистрация: 09.11.2008
Сообщений: 68
По умолчанию

так вот и я об этом... А вот когда создаю проект в Visual-e (Windows forms), кидаю на форму пару компонентов, пишу их обработчики, то они почему то оказываются в *.h файле.

пример (содержание моего *.h) :
Код:
#pragma once


namespace Lili {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO: добавьте код конструктора
			//
		}

	protected:
		/// <summary>
		/// Освободить все используемые ресурсы.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::Button^  button1;
	protected: 

	protected: 

	private:
		/// <summary>
		/// Требуется переменная конструктора.
		/// </summary>
		System::ComponentModel::Container ^components;

 /* код урезан для экономии места */

#pragma endregion
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
				 Обработчик события !!!
			 }
	};
}

Последний раз редактировалось JamS007; 24.05.2009 в 12:16.
JamS007 вне форума Ответить с цитированием
Старый 24.05.2009, 12:16   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

А нечего писать на поделках в виде C++.NET. Создавайте Win32 Application и создавайте окошки ручками или прицепите какую-нибудь библиотеку для создания GUI: Qt, wxWidgets,... и обрабатывайте свои события в *.cpp
pu4koff вне форума Ответить с цитированием
Старый 24.05.2009, 12:20   #7
JamS007
Пользователь
 
Регистрация: 09.11.2008
Сообщений: 68
По умолчанию

Ясненько.... Спасибо...

Пы.Сы. И все-таки зря я закинул свою любимый С++ Builder. Microsoft точно не компиляторопроизводитель! ))
JamS007 вне форума Ответить с цитированием
Старый 24.05.2009, 12:25   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от JamS007 Посмотреть сообщение
Ясненько.... Спасибо...

Пы.Сы. И все-таки зря я закинул свою любимый С++ Builder. Microsoft точно не компиляторопроизводитель! ))
Если Вы что-то не понимаете, то не надо винить компилятор. С++ компилятор у майкрософта достаточно неплохой и лучше соответствует любимому Вами стандарту языка, чем билдер.
pu4koff вне форума Ответить с цитированием
Старый 24.05.2009, 12:31   #9
SunKnight
Участник клуба Подтвердите свой е-майл
 
Аватар для SunKnight
 
Регистрация: 14.12.2007
Сообщений: 1,434
По умолчанию

Структура класса будет записываться в заголовочный файл, а описание методов в *.срр.

Цитата:
Microsoft точно не компиляторопроизводитель!
самый лучший под win32 ,64.
Проповедую design patterns, верую в MVC, доверяю eXtrime programming.
SunKnight вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по Visual Studio TheLostOne Visual C++ 8 19.04.2009 00:03
Вопрос по Microsoft Visual Studio 6.0 Enterprise Tools SinglWolf Свободное общение 0 31.01.2009 14:28
Вопрос по среде visual studio 2005 Neymexa Visual C++ 2 22.12.2008 18:43
вопрос о <Visual Studio 2008> Hayk Visual C++ 1 10.08.2008 22:45
У меня вопрос простой помогите мне найти книги поMicrosoft Visual Studio 2005 LuMax Помощь студентам 1 11.12.2007 15:14