【发布时间】:2015-01-05 09:42:12
【问题描述】:
我是 C++ 新手。我一直在努力克服这个错误。我知道当一个类在派生时,它继承了基类的所有内容,但是如果派生类有其他数据成员怎么办?构造函数应该是怎样的?
当我尝试只放置新的时,我尝试将参数传递给构造函数中新创建的类成员,我收到一个错误,说它与基类的不匹配。当我尝试使用基类并添加新的数据成员时,它告诉我我正在重新定义。所以我想知道要克服这个错误,我的代码还剩下什么。
这是基类:
class movielibrarybase
{
public:
movielibrarybase(string name, string dirname, string gen, int price);
void setname(string name);
string getname();
void setdirector_name(string dirname);
string getdirector_name();
void setgenre(string gen);
string getgenre();
void setprice(int price);
int getprice();
void display();
~movielibrarybase();
protected:
string name;
string director_name;
string genre;
int price;
};
这是派生类:
class songlibrary: public movielibrarybase
{
public:
songlibrary();
void setartist_name(string name);
string getartist_name();
void setsong_position(string position);
string getsong_position;
~songlibrary();
protected:
string artist_name;
string song_postion;
};
我收到以下错误:
songlibrary.cpp||在构造函数'songlibrary::songlibrary(std::string, std::string, std::string, int, std::string, std::string)':| songlibrary.cpp|6|错误:没有匹配函数调用“movielibrarybase::movielibrarybase()”| movielibrarybase.cpp|3|注意:候选对象是:movielibrarybase::movielibrarybase(std::string, std::string, std::string, int)| movielibrarybase.h|8|注意:movielibrarybase::movielibrarybase(const movielibrarybase&)| songlibrary.cpp|34|error: no 'std::string songlibrary::getsong_position()' member function声明在类'songlibrary'|
【问题讨论】:
-
如果您的计算机有鼠标,请使用它来复制实际的编译器消息并将它们粘贴到问题编辑框中。
标签: c++ class inheritance