Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Pingvinenok
Зарегистрирован: 30.06.2005 Сообщения: 171
|
Добавлено: Пн Июл 26 2010 05:36 Заголовок сообщения: C++ - вопросы начинающего |
|
|
Привет всем!
Не могу найти в литературе ответа на некоторые вопросы.
Подскажите, плиз, или ткните носом в соотв. параграф:
Код: | class baseClass
{
baseClass();
} |
Чем является baseClass() - явно объявленным конструктором по умолчанию или же перегрузкой оного?
Почему следующий код:
Код: | class baseClass
{
public:
int X;
baseClass();
baseClass(int x):X(x){};
};
class derivedClass : public baseClass
{
public:
int Y;
derivedClass();
derivedClass(int x, int y):baseClass(x),Y(y){};
}; |
дает ошибки:
error LNK2019: unresolved external symbol "public: __thiscall derivedClass::derivedClass(void)" (??0derivedClass@@QAE@XZ) referenced in function _main
error LNK2019: unresolved external symbol "public: __thiscall baseClass::baseClass(void)" (??0baseClass@@QAE@XZ) referenced in function _main
а вот так уже правильно в конструкторах без аргументов:
baseClass():X(1){};
derivedClass():Y(1){};
? _________________ Съешь еще мягких французских булок,да выпей чаю! |
|
Вернуться к началу |
|
|
yw
Зарегистрирован: 21.10.2009 Сообщения: 15
|
Добавлено: Пн Июл 26 2010 14:05 Заголовок сообщения: |
|
|
Конструктор только объявлен без определения . Компилятор доволен (мало ли где может быть определено тело конструктора) , а компоновщик не находит определения
Цитата: | baseClass():X(1){}; |
Определение есть |
|
Вернуться к началу |
|
|
Pingvinenok
Зарегистрирован: 30.06.2005 Сообщения: 171
|
Добавлено: Вт Июл 27 2010 05:43 Заголовок сообщения: |
|
|
Понятно. Спасибо! _________________ Съешь еще мягких французских булок,да выпей чаю! |
|
Вернуться к началу |
|
|
|