Форум программистов, компьютерный форум 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; подробнее

Показать сообщение отдельно
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
09.08.2012, 02:23     Как инициализровать константное поле класса в конструкторе?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class A {
public:
  size_t width() const {
    return X;
  }
  size_t height() const {
    return Y;
  } 
private:
  static const size_t X, Y;
};
 
const size_t A::X = 100;
const size_t A::Y = 200;
 
int main () {
  A a;
  std::cout << a.width() << std::endl;
}
самый очевидный вариант

Добавлено через 37 секунд
Цитата Сообщение от Buckstabue Посмотреть сообщение
Как инициализровать константное поле класса в конструкторе?
никак - в с++ нет такого синтаксиса

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
class A {
public:
  size_t width() const {
    return X;
  }
  size_t height() const {
    return Y;
  } 
private:
  enum { X = 100, Y = 200 };
};
 
Текущее время: 14:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru