因此,从学校的一项作业中,我必须创建一个默认的构造函数,该构造函数应将所有浮点数和整数设置为0,并将所有字符串设置为“ NA”。
以前,我只需要构造一个将音量设置为0,卡路里设置为0等等的构造器就很容易了。
我的问题是,
将所有浮点数和整数设置为0并尝试使所有字符串都变为“ NA”的语法如何?
这是我到目前为止的情况
class Candy {
private:
float sweetness;
protected:
string color;
//CONSTRUCTOR//
void setName(string n);
void setFloat(float f);
void setInt(int i);
这是我们要做的另一个cpp文件。
Candy::Candy() {
Candy(string n) {
setName(n);
}
Candy bo("NA");
}
我的方向正确吗?我真的很陌生,语法也不是很好。谢谢!
答案 0 :(得分:8)
使用构造函数初始化列表:
class Candy {
private:
float sweetness;
protected:
string color;
public:
Candy() : sweetness(0.0f), color("NA") { }
};
或者(在C ++ 11或更高版本中),使用类内初始化程序:
class Candy {
private:
float sweetness = 0.0f;
protected:
string color = "NA";
public:
Candy() = default;
};
答案 1 :(得分:0)
好,让我们看看您的头文件:
class Candy {
public:
Candy();
private:
float sweetness;
protected:
string color;
void setName(string n);
void setFloat(float f);
void setInt(int i);
};
您需要在公共部分声明构造函数,以便可以从外部调用它。它没有返回类型且不带任何参数(它应将所有内容单独设置为0,而不是您提供的值)。
在cpp文件中,您实现构造函数和之前声明的其他方法:
#include "Candy.h" // Or whatever the filename is
Candy::Candy() {
sweetness = 0.0f;
color = "NA";
}
// Implement the other methods, I don't know what they should do
// Example:
void Candy::setName(string n) {
// Do what you want
}
请注意,您必须实现每种方法,否则会出错。