我有一个类,它命名为A,A类在其私有中有另外三个类。
class A{
public:
A();
A(int num);
A(C& mC, P& mP, M& mM, int num);
//there is a getter and setter for all member this only one example(please check are they right?)
M getM()const{return pM;}
void setM(M classM){ pM = classM ;}
private:
C& pC;
P& pP;
M& pM;
int digit= 0;
};
我在参数构造中这样做:
A::A(C& mC, P& mP, M& mM, int num):pC(mc),pP(mP),pM(mM)
{
// doing someting here
}
但是当我写一些编译器对我说:
时,我无法编写默认代码和第一个参数结构。错误:'A&'中未初始化的参考成员'[-fpermissive] A :: A(){
和
像这样,有几个错误和注释。注意:'A&应该初始化A :: pP' A和的pP;
我该怎么办?如何在默认和第一个参数结构中初始化类?
答案 0 :(得分:1)
类A
包含引用到其他对象。与指针不同,引用不能为null。要使这项工作,您需要:
nullptr
,构造函数中没有提供有效对象