关于构造函数的问题

时间:2014-04-28 03:11:42

标签: c++ function class visual-c++ inheritance

我正在进行一项任务,它要求对我的继承类执行以下操作:

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

我不完全明白,如果我能举两个例子,我会非常感激。

我正致力于继承。

我的Number.h类通过继承。

#ifndef Number
#define Number

#include "Double.h"
#include "Integer.h"


class Number : public string

{


};

#endif

3 个答案:

答案 0 :(得分:0)

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

但是,只要您在开头有以下两行,名称Number将被预处理器替换。

#ifndef Number
#define Number

您应该为#include守卫使用另一个宏名称。

答案 1 :(得分:0)

您创建了班级Number。现在你可以创建一个有2个构造函数的新类(我称之为SpecialNumber)。第一个没有参数,并将值设置为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

答案 2 :(得分:0)

public:
Number::Number()
{
    data = "0";
}
Number::Number(string a)
{
    data = a;
}