Форум программистов, компьютерный форум CyberForum.ru

Конструктор класса, содержащего только статические члены - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сигналы в windows http://www.cyberforum.ru/cpp-beginners/thread343986.html
Как генерировать сигналы в среде windows? Информация по сигналам в линуксе гуглится, а вот для windows не найду. Ну кроме того что SIGINT это ctrl+c. А как сгенерировать SIGABRT и SIGTERM например? Моя программа-набросок: #include <iostream> #include <csignal> #include <windows.h> using namespace std; void sigintHandler(int x)
C++ Диаграмма классов в visual studia по готовому проекту Интересует новый функционал и как им воспользоваться для того чтобы в пару кликов посроить uml диаграмму классов http://www.cyberforum.ru/cpp-beginners/thread343982.html
Подскажите компилятор C++ на Linux C++
Чтобы поддерживал библиотеку <windows.h> Кажется так она пишется.... Просто GEANY не поддерживает WinAPI.....а хочется написать какое-то приложение)) Подскажите?)
Лишние байты C++
Не могу разобраться((( Терминал отправляет в порт левый массив как так?????? Вот код! //глобальные переменные unsigned char rx_buf, tx_buf; unsigned char m_speed; unsigned char m_buf; //--------------------------------------------------------------------------------------------------- class MyThread:public TThread
C++ Пространство имен в многофайловной программе http://www.cyberforum.ru/cpp-beginners/thread343974.html
Всем привет! Yashman, у которого часто что-то не получается снова в сети с новой проблеммой! :) Вот написал программу, а она не запускается, компиль выдает ошибки: Заголовочный файл: //файл attach.h namespace SALES { const int QUARTERS = 4; struct Sales { double sales;
C++ Примитив к.игры, проблемы в классе Проблема показана в атаче Помогите пожалуйста, что не так #include "stdafx.h" #include <iostream> #include "lang.h" using namespace std; enum Suit {clubs,diamonds,hearts,spades}; const int jack = 11; подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
22.08.2011, 16:32     Конструктор класса, содержащего только статические члены
В 12.41 речь идет о статическом члене foo класса bar. Его, как я понял, предлагается инициализировать в классе bar. То есть на самом деле статический член инициализируется при его определении, но тем не менее в конструкторе bar можно задать новое значение этого члена класса.

То есть имеет место быть 1)

C++
1
foo bar::s_foo_val( 0 );
это инициализация статического члена при его определении.

2) Можно задать новое значение в конструкторе bar для этого статического члена класса. Как это сделать? Статические члены класса не инициализируются в списке инициализации конструктора, так как они не связаны с объектом. Поэтому их инициализировать нужно в самом теле конструктора.

Поэтому вы могли бы написать следующий конструторк для bar

C++
1
2
3
4
bar::bar()
{
   s_foo_val = 10;
}
То есть в данном случае используется оператор присваивания, который для вас создал сам компилятор по умолчанию.

Теперь отвечаю на ваши вопросы.
1. Каким должен быть конструктор bar? Я это уже указал.
2. Да, если вы сами не определили конструктор, то компилятор создает конструктор по умолчанию, который имеет спецификации inline и public.
3. Как я уже указал, статические члены класса инициализируются при их определении. Но если вы желаете изменить их значение при создании объекта, то вы можете сделать так, как я показал на примере конструктора bar.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru