gpt4 book ai didi

c++ - C++ 中的空构造函数 :

转载 作者:可可西里 更新时间:2023-11-01 18:08:11 25 4
gpt4 key购买 nike

在我的代码中,我正在执行以下操作,但我不确定我是否被“允许”或者这是否是一种好的设计技术。我需要创建一个空的构造函数,但我还需要一个构造函数来初始化给定参数的变量。所以我正在做以下事情:

这是 C.h 文件。

 class C
{
private:
string A;
double B;
public:
//empty constructor
C();
C(string, double);
}

还有我的 C.cpp 文件:

//this is how I declare the empty constructor
C::C()
{

}


C::C(string a, double b)
{
A = a;
B = b;
}

我声明空构造函数的方式是否正确,还是我需要设置 A= NULL 和 B=0.0?

最佳答案

你的空构造函数没有做你想做的。 double 数据成员不会被零初始化,除非你自己做。 std::string 将被初始化为一个空字符串。所以默认构造函数的正确实现应该是

C::C() : B() {} // zero-initializes B

关于其他构造函数,您应该更喜欢初始化列表:

C::C(const string& a, double b) : A(a), B(b) {}

否则,您正在做的是对默认构造对象的赋值

关于c++ - C++ 中的空构造函数 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14918025/

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