Конструктор, устанавливающий все значения в 0 - PullRequest
0 голосов
/ 09 октября 2018

Итак, из задания, которое я получил из школы, мне нужно создать конструктор по умолчанию, который должен устанавливать все числа с плавающей запятой и целые числа равными 0, а все строки - «NA».

Раньше это было довольно легко.пришлось просто сделать конструктор, чтобы установить громкость на 0, калории на 0 и т. д.

Мой вопрос,

Как синтаксис для установки всех чисел с плавающей запятой, и int для 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 голосов
/ 09 октября 2018

Используйте список инициализации конструкторов:

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;
};
0 голосов
/ 09 октября 2018

Хорошо, давайте посмотрим ваш файл заголовка:

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
}

Обратите внимание, вы должны реализовать каждый метод, иначе вы получите ошибки.

...