我是C ++编程的新手,我试图在派生类中实例化一个构造函数。我的基类是ClienteBase:
class ClienteBase: public ClienteComprar{
protected:
string nome;
double saldo;
public:
ClienteBase(string n, double s);
int comprarProduto();
};
我的班级ClienteFisico的构造函数是:
ClienteFisico::ClienteFisico(string n, double s, string c){
ClienteBase(n, s);
cpf = c;
}
我不知道问题是什么,但是当我编译它时会给我一个错误,说ClienteBase需要两个参数并且为零,但是n和s是参数,对吧? 谢谢你的帮助。
答案 0 :(得分:1)
您的初始化需要在初始化列表中完成。
Foo::Foo(... agrs ...) : ... initializer list ...
^ // Start of initializer list
{ // Start of constructor body
}
因此你应该这样做
ClienteFisico::ClienteFisico(string n, double s, string c) :
ClienteBase(n, s), // Now calling parent constructor
cpf(c) // This isn't required to be here but is preferred over the body
{
}