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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Замена фигур на шахматной доске http://www.cyberforum.ru/cpp-beginners/thread635016.html
задача. расставить случайным образом четырех коней на шахматной доске (два белых и два черных). вывести отдельно список полей под боем каждого из коней, список полей под боем нескольких (указать...
C++ Генератор слов Здравствуйте! Хочу написать программу по генерированию слов из набора букв, но даже не представляю с чего начать... Может кто-нибудь посоветовать с чего начать? Спасибо большое... Опишу немного... http://www.cyberforum.ru/cpp-beginners/thread635012.html
Очередь с приоритетом C++
/* ПОМОГИТЕ пож. в задаче не могу реализовать статистику печати, т.е. вывода на экран времени когда кто вошёл в очередь и не получается отсортировать по приориттам клиентов, др. словами у меня...
C++ Класс матриц с арифметическими операциями С++
Я создаю класс матриц с операциями сложения, умножения, вычитания матриц, умножения на константу, транспонирования на С++. Почему-то не работает умножение матриц. Помогите пожалуйста. Вот код. ...
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:...
C++ Класс: создать класс "Person" 1,2 #include <iostream> #include <string> class Person { Person() : name("Alex"), address("Texas") {} private: std::string name; подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
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
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru