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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2012, 23:27   #11
Drakonkn
 
Регистрация: 21.10.2012
Сообщений: 8
По умолчанию

Как оказалось он имел ввиду цитирую: "Отсутствие полей данных". Что меня слегка озадачило. Читал не помню где, что в заголовочных файлах .h переменные определяться не должны. Или всё таки должны? Объясните пожалуйста концепцию заголовочных файлов, а то я сейчас делаю "потому что так надо", хотя не понимаю почему надо и почему именно так. =)
Drakonkn вне форума Ответить с цитированием
Старый 24.10.2012, 23:36   #12
sVasilich
Форумчанин
 
Аватар для sVasilich
 
Регистрация: 16.12.2009
Сообщений: 224
По умолчанию

Это, так называемые, свойства класса. Тебе же нужно где-то хранить, например, значение текущего канала и название телевизора? Лучше возьми какой-нибудь учебник по С++ или по ООП и почитай там про это. Там лучше объяснят)) Должно быть что-то типа такого:

Код:
class TVSet
{
public:
      TVSet(int channel,string name);
     ~TVSet(void);
     int GetChannel(void);
     int SetChannelinN(int N);
     void PowerON();
     void PowerOFF();
     string GetName();
     int NextChannel();
     int PrewChannel();
private:
     int currentChannel;
     std::string nameTV;
};
И, например, конструктор вот с такой реализацией:
Код:
TVSet::TVSet(int channel,string name) : currentChannel(channel), nameTV(name){}
PS Сначала подумал, что не нравится именно публичный интерфейс, а секция private в листинге не показана за ненадобностью)
Люди бывают 10 типов: те, кто понимают двоичную систему счисления, и те, кто не понимают...

Последний раз редактировалось sVasilich; 24.10.2012 в 23:39.
sVasilich вне форума Ответить с цитированием
Старый 25.10.2012, 00:38   #13
Drakonkn
 
Регистрация: 21.10.2012
Сообщений: 8
По умолчанию

Например тут написано:
в заголовочном файле никогда не должно быть:

1.Определений обычных функций char get() { return *p++; }
2.Определений данных int a;
Drakonkn вне форума Ответить с цитированием
Старый 25.10.2012, 03:12   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

определений, а не объявлений.

и вы перепутали поле класса с переменной.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.10.2012, 09:19   #15
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

По-моему несуразностей здесь две:
Код:
int GetChannel(void);
Не понятно, зачем передавать в функцию значение void?
Код:
int SetChannelinN(int N);
При установке канала, какие данные могут быть возвращены?
Возможно препод имел в виду такое написание:
Код:
int GetChannel();
void SetChannelinN(int N);
Не?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 26.10.2012, 00:14   #16
Drakonkn
 
Регистрация: 21.10.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
определений, а не объявлений.

и вы перепутали поле класса с переменной.
Просто в примере написано int a; вот я и подумал.

И если не сложно, то объясните разницу между полем и переменной.
Drakonkn вне форума Ответить с цитированием
Старый 26.10.2012, 00:20   #17
Drakonkn
 
Регистрация: 21.10.2012
Сообщений: 8
По умолчанию

Цитата:
При установке канала, какие данные могут быть возвращены?
Код ошибки, в случае неудачи А вообще он уже ответил, что он имел ввиду. Смотри посты выше.
Drakonkn вне форума Ответить с цитированием
Старый 26.10.2012, 01:09   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
И если не сложно, то объясните разницу между полем и переменной.
хидер не должен содержать глобальные переменные.
поле же переменная объекта.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемы с классом monolit111 Общие вопросы C/C++ 2 15.12.2011 12:36
Проблема с классом Celestia Общие вопросы Delphi 3 03.12.2010 15:40
Работа с классом UnChanter Помощь студентам 2 14.03.2010 20:23
Работа с классом| C++ Konicy Общие вопросы C/C++ 15 21.12.2009 19:08
C++ работа с классом VadEr Помощь студентам 2 17.05.2009 12:33