从同一个类打印3个对象

时间:2018-06-13 09:46:46

标签: c++

我开始阅读一本书,在某些时候我来到class,在我创建了我的第一个类并在main中创建了一个对象之后,我决定在同一个类上再创建两个Object 。该程序工作正常,但输出似乎与我的理解不同。

以下是代码:

#include <iostream>

using namespace std;

class Data{
    public:
        Data( string z ){
            cout << z << endl;
        }
        void setName ( string x ){
            name = x;
        }

        string getName( void ){
            return name;
        }
    private:
        string name;
};

int main ( void ){
    Data obj1( "Hello" );
    Data obj2( "World" );
    Data obj3( "!" );

    cout << obj3.getName() << endl;
    cout << obj2.getName() << endl;
    cout << obj1.getName() << endl;
}

这是输出:

Hello
World
!

但我认为它会打印出来:

!
World
Hello

为什么会这样?

1 个答案:

答案 0 :(得分:7)

输出是在构造函数中创建的,但您从不设置对象的名称。这就是为什么输出顺序以您创建对象的顺序出现的原因。

我想你打算这样做:

class Data{
public:
    Data( string z ){
        name = z;
    }
    void setName ( string x ){
        name = x;
    }

    string getName( void ){
        return name;
    }
private:
    string name;
};