从同一个类打印3个对象

Mic*_*chi 2 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;
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

Hello
World
!
Run Code Online (Sandbox Code Playgroud)

但我认为它会打印出来:

!
World
Hello
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

Tob*_*iSH 7

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

我想你打算做的是这样的:

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

    string getName( void ){
        return name;
    }
private:
    string name;
};
Run Code Online (Sandbox Code Playgroud)

  • 你需要Michi的例子是什么? (3认同)