Форум программистов, компьютерный форум, киберфорум
Наши страницы

Когда надо использовать списки инициализации, а когда можно заменить их констуктором по умолчанию? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа со строками, поиск нужных элементов и их вывод http://www.cyberforum.ru/cpp-beginners/thread649180.html
Дана строка, состоящая из групп нулей и единиц. Подсчитать количество единиц в группах с нечетным количеством символов. Вот попробовал, но не работает, и ошибки не вижу :-| int i,Length; char...
C++ TreeView в visual c++ Здравствуйте уважаемые форумчане! Недавно начал программировать не только для процесса получения образования, но и для себя. Пишу небольшое графическое приложение в MS Visual C++ Express работающее с... http://www.cyberforum.ru/cpp-beginners/thread649169.html
С++ Шахматная доска C++
Помогите пожалуйста с заданием. Нужно сделать шахматную доску 16*16 и пользователь должен ввести координаты звездочек которые расположатся на доске. Потом программа должна найти кратчайший путь из...
C++ Работа с БД + Поиск по БД C++
Всем привет форумчане! Звучит так "Система учета успеваемости студентов" Тобишь к программе прилагается БД любая хоть MySQL. Что делает программа? Обычный пользователь может вбить туда студента...
C++ Заполнение массива случайным числом http://www.cyberforum.ru/cpp-beginners/thread649112.html
Забыл указать, что нужно вещественное число А и B - правый и левый диапазоны. ar = A + rand() % (B - A + 1); А если число вещественное?
C++ Заполнение массива случайным числом Простите забыл указать. Как заполнить массив случайным вещественным. А и B - правый и левый диапазоны. ar = A + rand() % (B - A + 1); А если число вещественное? подробнее

Показать сообщение отдельно
hoggy
6798 / 2984 / 514
Регистрация: 15.11.2014
Сообщений: 6,747
Завершенные тесты: 1
31.01.2015, 22:03
Цитата Сообщение от IGPIGP Посмотреть сообщение
Константа встроенного типа с инициализирующим значением не передаваемым в конструктор становится угрожающе статической.
"угрожающе статической" - это что, определение гуманитариев?

Она была и остается обычным мембером класса.

Причем, совершенно не принципиально встроенный это тип, или нет:

http://rextester.com/TNHWV64207

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Title of this code
//g++  4.8.2
 
#include <iostream>
#include <functional>
 
 
struct example
{
    typedef std::function<void()>
        delegate;
    
    void view()const { std::cout<<"value = "<< value<<'\n'; }
    const int value = 10;
    
    const delegate hello = [](){ std::cout<<"Hello, world!\n";  };
};
 
int main()
{
    example().hello();
}
На самом деле все гораздо проще:
мемберы можно инициализировать не только в списках инициализации.

Вот и все.


Цитата Сообщение от IGPIGP Посмотреть сообщение
:a(a_)//ok однако закомментируйте эту строку и раскомментируйте ту что сейчас закомментирована ниже
{
//a=a_; //не получится
}
Ваше "не получится" - это присвоение, а не инициализация.

Очевидно, что раз мембер - константа, то присвоить ему новое значение уже нельзя.
Только к инициализации это вообще не имеет никакого отношения
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru