繁体   English   中英

找不到重载的成员函数

[英]Overloaded member function not found

我的代码有问题,错误是:

    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--;
}

我尝试过更改构造函数,但我不知道如何使这一工作正常。 提前致谢 :)

您需要从.cpp文件中删除默认构造函数的定义,因为您只有一个带有默认参数的参数构造函数:

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

这可以用作默认构造函数,因为可以在不带参数的情况下调用它。

另一种选择是删除单参数构造函数中的默认参数,并为默认构造函数添加一个声明。 例如:

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

请记住,您的类还有很多其他数据成员可能应该初始化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM