关于建设者的问题

Questions regarding constructors

本文关键字:问题 建设者      更新时间:2023-10-16

我正在处理一个赋值,它要求对我的继承类执行以下操作:

  • 将数据节设置为"0"的无参数构造函数
  • 一个重载构造函数,它接受一个字符串并将数据节设置为传递给它的值

我不完全理解,如果我能举两个例子,我将不胜感激

我正在研究继承问题。

我的Number.h类通过继承。

#ifndef Number
#define Number
#include "Double.h"
#include "Integer.h"

class Number : public string
{

};
#endif
class Number : public string
{
public:
    Number() : string("0") { }
    Number(const string &str) : string(str) { }
};

但是,只要开头有以下2行,名称Number就会被预处理器取代。

#ifndef Number
#define Number

您应该为#include保护使用另一个宏名称。

您创建了类Number。现在您可以创建一个新的类(我称之为SpecialNumber),它有2个构造函数。第一个构造函数没有参数,并将值设置为0,而另一个构造函数获取要用作类值的参数。

#ifndef NUMBER_H
#define NUMBER_H
class Number
{
private:
    int myValue;
};
class SpecialNumber : public Number
{
public:
    SpecialNumber()
        : myValue( 0 ) // fixed value
    {
    }
    SpecialNumber( int someValue )
        : myValue( someValue ) // value coming from a parameter
    {
    }
}
#endif
public:
Number::Number()
{
    data = "0";
}
Number::Number(string a)
{
    data = a;
}