我是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是参数,对吗?
谢谢您的帮助。
最佳答案
您的初始化需要在初始化列表中完成。
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
{
}
关于c++ - ClienteBase.h:33:7:注意:候选人期望2个参数,提供0个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29447979/