构造函数将所有值设置为0

时间:2018-10-09 06:17:11

标签: c++ oop constructor private

因此,从学校的一项作业中,我必须创建一个默认的构造函数,该构造函数应将所有浮点数和整数设置为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");
}

我的方向正确吗?我真的很陌生,语法也不是很好。谢谢!

2 个答案:

答案 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
}

请注意,您必须实现每种方法,否则会出错。