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

Как инициализровать константное поле класса в конструкторе? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Замена фигур на шахматной доске http://www.cyberforum.ru/cpp-beginners/thread635016.html
задача. расставить случайным образом четырех коней на шахматной доске (два белых и два черных). вывести отдельно список полей под боем каждого из коней, список полей под боем нескольких (указать каких именно), и полей не под боем ни одного из четырех. Добавлено через 9 часов 7 минут слабо? это, конечно, не диагональ симметричной матрицы вывести...
C++ Генератор слов Здравствуйте! Хочу написать программу по генерированию слов из набора букв, но даже не представляю с чего начать... Может кто-нибудь посоветовать с чего начать? Спасибо большое... Опишу немного программу: Пользователь вводит в строку буквы НО?А и нажимает кнопку, программа должна подобрать все возможные слова и вывести. Знаком вопроса заменяются неизвестные буквы... http://www.cyberforum.ru/cpp-beginners/thread635012.html
Очередь с приоритетом C++
/* ПОМОГИТЕ пож. в задаче не могу реализовать статистику печати, т.е. вывода на экран времени когда кто вошёл в очередь и не получается отсортировать по приориттам клиентов, др. словами у меня сортируется только приоритет а клиент нет, у клиента меняется только приоритет*/ /* 3. Разработать приложение, имитирующее очередь печати принтера. Должны быть клиенты, посылающие запросы на принтер, у...
C++ Класс матриц с арифметическими операциями С++
Я создаю класс матриц с операциями сложения, умножения, вычитания матриц, умножения на константу, транспонирования на С++. Почему-то не работает умножение матриц. Помогите пожалуйста. Вот код. #include<iostream> using namespace std; class Matrix{ friend Matrix operator * (Matrix, Matrix); public: void SetMatrix();
C++ Директива препроцессора #if http://www.cyberforum.ru/cpp-beginners/thread634990.html
Вобще при коспиляции файла взятого с офф сайта микрософт endian.h Получаю вот такие ошибки 17|error: operator '==' has no left operand 95|error: operator '==' has no left operand 131|error: operator '!=' has no left operand соответствено на строки #if (BIT_ORDER == BYTE_ORDER) // 17 #if BYTE_ORDER==BIG_ENDIAN // 95 #if (BYTE_ORDER != DEVICE_ORDER) // 131 Почему они возникают? Обе...
C++ Класс: создать класс "Person" 1,2 #include <iostream> #include <string> class Person { Person() : name("Alex"), address("Texas") {} private: std::string name; подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
10.08.2012, 06:22     Как инициализровать константное поле класса в конструкторе?
Цитата Сообщение от Buckstabue Посмотреть сообщение
В идеале хотелось бы что-то вроде этого
Запросто:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
 
class image
{
    std::string name;
    size_t width, height;
    
public:
    image(const std::string& n)
        : name(n), width(rand() % 10 + 1), height(rand() % 10 + 1)
    {
    }
 
    size_t get_width() const
    {
        return width;
    }
 
    size_t get_height() const
    {
        return height;
    }
 
    std::string get_name() const
    {
        return name;
    }
};
 
class image_processor
{
    image img;
    const size_t img_width, img_height;
 
public:
    image_processor(const image& image)
        : img(image), img_width(img.get_width()), img_height(img.get_height())
    {
    }
 
    void run() const
    {
        std::cout << "Processing image `" << img.get_name() << "' "
                  << img_width << "x" << img_height << std::endl;
    }
};
 
int main()
{
    srand(time(NULL));
    
    image_processor(image("facepalm.jpg")).run();
}
Цитата Сообщение от Buckstabue Посмотреть сообщение
И вообще такой способ инициализации есть по-моему даже в книге Дейтелов 2007 года издания
а вот это вряд ли. Если верить этой страничке, то такое есть только в последних версиях GCC и Clang
 
Текущее время: 14:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru