Вопрос по поводу объявления класса в С++ Билдер

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
prikolist
Сообщения: 38
Зарегистрирован: 19 ноя 2008, 13:09

Здравствуйте программисты! Начал изучать классы в с++ Билдер.
Немного не могу въехать. Подскажите пожалуйста,классы нужно обязательно ли объявлять в фале .h ,как получать доступ к элементам описаным в классе. Примерно,как описывается класс,по книге очень сокращённо. Заранне благодарен за ответ.Извините,если не литтературно выразился.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Классы не обязательно объявлять в h файле. В h файле нужно выносить объявление класса только в том случае, если использовать класс нужно будет в нескольких единицах трансляции (в этом случае h файл должен быть заинклюжен в каждый cpp файл, где он используется).

Простой пример класса:

Код: Выделить всё

class A
{
public:
   A() // default constructor
   : m_prot(0), m_priv(0)
   {
      // code will be called aftet object creation
   }

   A(const A& rhs) // copy constructor
   {
      // code will be called during object copying
      m_prot = rhs.m_prot;
      m_priv = rhs.m_priv;
   }

   ~A() // destructor
   {
      // code will be called before object destruction
   }

   SetPriv(int n) { m_priv = n; }

protected:
   int m_prot;

private:
   int m_priv;
};

class B : public A
{
public:
   B() : A()
   {
      m_prot = 5; // we can set it directly
      SetPriv(5); // we can set m_priv only using accessible method
   }
};

void main()
{
   A a;
   A a2(a);
   B b;
}
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
prikolist
Сообщения: 38
Зарегистрирован: 19 ноя 2008, 13:09

Напишите немного коментарий пожалуйста к классам. Меня интересует также,как получать доступ к объектам или функциям класса. Зараннее благодарен за ответ.
Аватара пользователя
WinMain
Сообщения: 929
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

А в той книге, которую ты читаешь, разве ничего про это не написано?
Класс, объект, методы класса - это ключевые понятия в С++.
Не может быть, чтобы в книге по С++ ничего про это не написали.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

&quot писал(а):Напишите немного коментарий пожалуйста к классам.
Комментариев достаточно. Для того, чтобы узнать тонкости - читай книги. Чтобы написать о классах абсолютно всё, мне сюда придётся перепечататься того же Страуструпа, а это то время, которым я, к сожалению, не располагаю.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить