C++看程序写结果
谁能帮我分析一下这个程序?多谢了!!!#include<iostream>#include<string>usingnamespacestd;classObject{st...
谁能帮我分析一下这个程序?多谢了!!!
#include<iostream>
#include<string>
using namespace std;
class Object{
string name;
public:
Object(char* s="Nome"):name(s) {cout<<name<<endl;}
Object(const Object& o):name(o.name) {cout<<name<<endl;}
~Object() {cout<<name<<endl;}
};
Object MakeObject(char* s) {
Object obj(s);
return obj;
}
Object global("Global");
int main() {
MakeObject("Local");
} 展开
#include<iostream>
#include<string>
using namespace std;
class Object{
string name;
public:
Object(char* s="Nome"):name(s) {cout<<name<<endl;}
Object(const Object& o):name(o.name) {cout<<name<<endl;}
~Object() {cout<<name<<endl;}
};
Object MakeObject(char* s) {
Object obj(s);
return obj;
}
Object global("Global");
int main() {
MakeObject("Local");
} 展开
展开全部
运行一下优化后的代码,有问题再研究:
#include<iostream>
#include<string>
using namespace std;
class Object{
string name;
public:
Object(char* s="Nome"):name(s) {cout<<"struct " << name<<endl;}
Object(const Object& o):name(o.name) {cout<<"copy struct" << name<<endl;}
~Object() {cout<<"destroy " << name<<endl;}
};
Object MakeObject(char* s) {
Object obj(s); //
return obj; //
}
Object global("Global");
int main() {
MakeObject("Local");
return 0;
}
追问
恩,但为什么Local 析构了两次?,我懂了!谢了!!
追答
不客气,多研究就会有收获
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |