gpt4 book ai didi

c++ - 在另一个类构造函数中初始化类对象

转载 作者:行者123 更新时间:2023-11-28 05:26:32 24 4
gpt4 key购买 nike

我有一个类(class),它命名为 A,A 类(class)有 3 个私有(private)类(class)。

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
}

但是当我写一些编译器对我说的东西时,我不能为默认和第一个参数构造编写代码:

error: uninitialized reference member in ‘class A&’ [-fpermissive] A::A(){

note: ‘A& A::pP’ should be initialized A& pP;

像这样,有几个错误和注释。

我该怎么办?如何在默认和第一个参数构造中初始化类?

最佳答案

A 类包含对其他对象的引用。与指针不同,引用不能为空。要完成这项工作,您需要:

  • 使用指针代替引用,并将它们初始化为nullptr 构造函数中未提供有效对象
  • 按值存储这些成员。这涉及原始参数的拷贝,并且在语义上有所不同 - 可能不是您所需要的。

关于c++ - 在另一个类构造函数中初始化类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40448872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com