В секцию protected или private их.
Сделать методы "Set...()" и "Get...()". Хотя что-то там уже есть.
Сделать методы "Set...()" и "Get...()". Хотя что-то там уже есть.
И что дальше? Внутри данных методов инициализировать объявленные переменные заданным значение? Если внутри метода класса будут вводные члены это нормально?
В секцию protected или private их.
Меня одно удивляет. Ведь закрытые и защищённые секции класса не видны другим функциям. Как там вводные переменные то будут уместны, если их за пределами класса не видно?
И что дальше? Внутри данных методов инициализировать объявленные переменные заданным значение? Если внутри метода класса будут вводные члены это нормально?
Меня одно удивляет. Ведь закрытые и защищённые секции класса не видны другим функциям. Как там вводные переменные то будут уместны, если их за пределами класса не видно?
Если я невидим, то не обязательно слеп.
Меня одно удивляет. Ведь закрытые и защищённые секции класса не видны другим функциям. Как там вводные переменные то будут уместны, если их за пределами класса не видно?
Zhunko:
Сделать методы "Set...()" и "Get...()". Хотя что-то там уже есть.
Сделать методы "Set...()" и "Get...()". Хотя что-то там уже есть.
И что будет в данных методах? Имею ввиду, в Set() и Get()...
Я вижу это типа так:
//+=======================================================================================================================================+ // ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ | //+=======================================================================================================================================+ extern bool ib_PrintPermission = true, // Флаг печати комментариев ib_CommentPermission = true; // Флаг показа комментариев на графике //+=======================================================================================================================================+ //=================================================== Определяем класс библиотеки ====================================================| //+=======================================================================================================================================+ class CLogging { private: void GetInputVarPrivate(); // Переменные, которые не видны за пределами класса protected: string m_ls_LibName; public: CLogging(); ~CLogging(); void GetInputVarPublic(); // Переменные, которые будут видны всем функциям, использующих класс void fWrite_Log (string fs_Txt, bool fb_PrintPermission, bool fb_CommentPermission); // 1.1 Пишим Log-файл. //.. тут... //.. другие... //.. методы... void fPrint (string fs_Txt, bool fb_PrintPermission, bool fb_CommentPermission); // 1.2 Выводим на печать и (или) на график комментарии. }; //+---------------------------------------------------------------------------------------------------------------------------------------+ //---- //========================================================================================================================================= // 0.1 Конструктор класса. ================================================================================================================ CLogging::CLogging() { } // 0.2 Деструктор класса. ================================================================================================================= CLogging::~CLogging() { } //========================================================================================================================================= void GetInputVarPrivate() { extern VAR1 = x; extern VAR2 = y; ... ... extern VAR3 = z; } void GetInputVarPublic() { extern VAR4 = x; extern VAR5 = y; ... ... extern VAR6 = z; }
class A { int v; public: A(const int var = 0) { Set(var); } ~A(){} void Set(const int var) { v = var; } int Get() const { return(v); } }; A a; a.Set(123); int nVar = a.Get();
Всё то конечно логично, но почему в объявлении метода:
int Get() const
спецификатор доступа находится после имени метода я так и не понял. Обычно же порядок такой:
тип спецификатор(если есть) имя переменной(или метода)
Всё то конечно логично, но почему в объявлении метода:
спецификатор доступа находится после имени метода я так и не понял. Обычно же порядок такой:
тип спецификатор(если есть) имя переменной(или метода)
Это означает, что метод не может модифицировать данные класса. Типа, на всякий случай, чтобы ничего плохого не случилось потом.
И каким же образом в функции:
void Set(const int var) { v = var; }Может измениться константа var, если она не получает никаких значений?
И каким же образом в функции:
Это означает, что метод не может модифицировать данные класса. Типа, на всякий случай, чтобы ничего плохого не случилось потом.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть класс. В нём используются внешние переменные. Как следует задавать значения этим переменным? Ведь в самом классе можно только объявлять переменные. А задавать значения не допустимо. Получается, что в объявлении класса это реализовать нельзя. Какие есть варианты решения данной ситуации?
Я написал так в тестовом небольшом классе: (До класса объявил внешними переменными ib_PrintPermission и ib_CommentPermission)
Но, по-моему, так не очень грамотно. Или нормально? Какие ещё бывают варианты?