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

Конструктор класса - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Chup
Сообщений: n/a
12.03.2011, 00:34     Конструктор класса #1
Имеется:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class block{
public:
block(int, int);
private:
int CoordX;
int CoordY;
};
block::block(int X, int Y){
CoordX = X;
CoordY = Y;
}
 
class cube{
public:
cube();
private:
class block TopLeft(2, 3);  //строка вызывающая ошибку
};
На сколько понимаю, всё вполне правильно: объявляем класс cube, элементом которого будет объект класса block. Но как только пытаюсь всё это дело скомпилировать, выдаёт ошибку:
error C2059: синтаксическая ошибка: константа.
Компилятор Microsoft Visual Studio 2008.
Никак не могу понять в чём дело, прошу вашей помощи. Заранее спасибо
P.S. Пытался использовать оператор глобального разрешения, при определении конструктора класса block, но всёравно не работает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
12.03.2011, 00:39     Конструктор класса #2
C++
1
2
3
4
5
6
[quote=Chup;1441815]class cube{
public:
cube() : TopLeft(2,3) {}
private:
 block TopLeft; 
};
Chup
Сообщений: n/a
12.03.2011, 00:53     Конструктор класса #3
Цитата Сообщение от alex_x_x Посмотреть сообщение
C++
1
2
3
4
5
6
class cube{
public:
cube() : TopLeft(2,3) {}
private:
 block TopLeft; 
};
Спасибо, работает. Но мне не понятно, что мы делаем таким образом? И если необходимо объявить несколько элементов класса block в классе cube, необходимо писать такую конструкцию в секции public для каждого?
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
12.03.2011, 00:59     Конструктор класса #4
Chup, если мы объявляем членом класса объект, то его конструктор нужно вызывать в конструкторе класса
Yandex
Объявления
12.03.2011, 00:59     Конструктор класса
Ответ Создать тему
Опции темы

Текущее время: 08:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru