p*l
2 楼
struct A{
int *a;
A() {
a = new int;
*a = 5;
cout << "default construct is called" << endl;
}
A(const A& a) {
cout <}
A(A&& a){
cout << "move consturct is called" << endl ;
}
A& operator=(const A & a)
{
cout << "assignment " << endl ;
return *this;
}
~A()
{
cout << "release A" << endl ;
}
};
A getA() {
A a;
return a;
};
void main()
{
A a = getA();
cout << *(a.a)<< endl;
}
int *a;
A() {
a = new int;
*a = 5;
cout << "default construct is called" << endl;
}
A(const A& a) {
cout <}
A(A&& a){
cout << "move consturct is called" << endl ;
}
A& operator=(const A & a)
{
cout << "assignment " << endl ;
return *this;
}
~A()
{
cout << "release A" << endl ;
}
};
A getA() {
A a;
return a;
};
void main()
{
A a = getA();
cout << *(a.a)<< endl;
}
h*0
3 楼
等收到再定也不迟!我妈第四天护照就到手了!
j*w
4 楼
default construct is called
5
release A
看这里有在线执行结果:
https://codidate.com/code/sandbox?s=pkc5tq8s9q
5
release A
看这里有在线执行结果:
https://codidate.com/code/sandbox?s=pkc5tq8s9q
p*l
5 楼
发现不同编译系统,输出结果不一样
vc里面 输出还包括 "move consturct is called“
【在 j*****w 的大作中提到】
: default construct is called
: 5
: release A
: 看这里有在线执行结果:
: https://codidate.com/code/sandbox?s=pkc5tq8s9q
vc里面 输出还包括 "move consturct is called“
【在 j*****w 的大作中提到】
: default construct is called
: 5
: release A
: 看这里有在线执行结果:
: https://codidate.com/code/sandbox?s=pkc5tq8s9q
p*l
7 楼
多谢
【在 r*****z 的大作中提到】
: https://en.cppreference.com/w/cpp/language/copy_elision
【在 r*****z 的大作中提到】
: https://en.cppreference.com/w/cpp/language/copy_elision
相关阅读
如何计算卷积?编程面试题【讨论】 你认为Linux里写C++代码用什么editor最方便:emacs (转载)does the system guarantee this? (转载)一个奇怪的问题one question about algorithmWhy my new or delete operator would fail?【讨论】Linux启动时执行配置文件的顺序 (转载)Question about IIFquestion regarding standard library一个Perl 匹配问题问个问题明天要做c++ paper test,他们一般会怎么测试啊?请问怎么把网页的宽屏显示改为普通的有人能解释一下这段C++代码吗Do the two statements cost the same amount of time?how to use hashtable in C++谁能给出关于class和type的区别的英文解释问个简单的memory allocation 的问题。请问如何恢复正常的IO?