2013-06-05 4 views
1

У меня есть проблемы с моим кодом, ошибка:перегруженная функция не найдена

1>c:\users\grother\documents\obiektowe\lab05_195975\lab05_195975\czlowiek.cpp(6): error C2511: 'czlowiek::czlowiek(void)' : overloaded member function not found in 'czlowiek' 
    1>c:\users\grother\documents\obiektowe\lab05_195975\lab05_195975\czlowiek.h(3) : see declaration of 'czlowiek' 

Это czlowiek.h

class czlowiek  
{ 
    private: 

    public: 
     int wiek, pola, r; 
     char plec, *p, imie[15], nazwisko[25]; 
     static int n; 
     string ulubioneKsiazki; 

     //czlowiek(); 
     virtual ~czlowiek(); 
     czlowiek(const string& ulubioneKsiazki="Brak informacji") 
     { 
      this->ulubioneKsiazki=ulubioneKsiazki; 
     }; 
}; 

и это czlowiek.cpp:

#include "stdafx.h" 
#include "czlowiek.h" 

int czlowiek::n=0; 

czlowiek::czlowiek():p(0) 
{ 
    n++; 
} 

czlowiek::~czlowiek() 
{ 
    n--; 
} 

I Я попытался изменить конструктор, но я понятия не имею, как заставить это работать. Заранее спасибо :)

+0

Где вы объявляли 'czlowiek()' в классе? –

ответ

2

Вы должны удалить определение конструктора по умолчанию из файла .cpp, поскольку у вас есть один конструктор параметра с параметром по умолчанию:

czlowiek(const string& ulubioneKsiazki="Brak informacji") 
{ 
    this->ulubioneKsiazki=ulubioneKsiazki; 
}; 

Это действует как конструктор по умолчанию , так как он может быть вызван без аргументов.

Другой альтернативой является удаление параметра по умолчанию в конструкторе одиночных параметров и добавление объявления для конструктора по умолчанию. Например:

czlowiek() : ulubioneKsiazki="Brak informacji" {} 
czlowiek(const string& ulubioneKsiazki) : ulubioneKsiazki(ulubioneKsiazki) {} 

Имейте в виду, что в вашем классе имеется немало других элементов данных, которые, вероятно, должны быть инициализированы.

+0

Тогда я получаю эту ошибку: «czlowiek»: несколько конструкторов по умолчанию указаны , поэтому он закомментирована :( –

+0

@KamilDajerling К сожалению, мой ответ был совершенно неправильным Обновлено.. – juanchopanza

Смежные вопросы