我开始阅读一本书,在某些时候,我来到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)
为什么会这样?
输出是在构造函数中创建的,但您从不设置对象的名称.这就是输出顺序以创建对象的顺序出现的原因.
我想你打算做的是这样的:
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)
| 归档时间: |
|
| 查看次数: |
40 次 |
| 最近记录: |