关于函数返回值的讨论与总结
生活随笔
收集整理的這篇文章主要介紹了
关于函数返回值的讨论与总结
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
class A
{
public:
A()
{
cout<<"普通構(gòu)造函數(shù)"<<endl;
}
A(const A& a)
{
cout<<"copy construct"<<endl;
}
~A()
{
cout<<"deconstruct"<<endl;
}
A& operator=(const A &a)
{
cout<<"復(fù)制操作符"<<endl;
return *this;
}
};
A fA(A a)
{
//A a;
return a;
}
int main()
{
A a;
A b;
b=fA(a);
system("pause");
return 0;
}
1. ?對(duì)于函數(shù)返回的是引用還是非引用,如果我們采用這種方式 ?A b=fun(a) ,不產(chǎn)生影響。
2. ?如果 以這種方式調(diào)用, A b ; b=fun(a) ?且 函數(shù)已拷貝的形式返回,那么可以分為三種
| 函數(shù)聲明形式 | A fun(A &a) { ? ?return a; } | A fun(A a) { ? return a; | A fun() { ? ? A a; ? ? return a; |
| 函數(shù)返回對(duì)于拷貝構(gòu)造函數(shù)調(diào)用的情況 b=fun(a) | 調(diào)用一次拷貝構(gòu)造函數(shù) | 調(diào)用兩次拷貝構(gòu)造函數(shù),一次是傳入實(shí)參的時(shí)候,一次是return 的時(shí)候 | 不調(diào)用拷貝構(gòu)造函數(shù)。(這個(gè)比較奇怪)我想是編譯器優(yōu)化的結(jié)果。 |
轉(zhuǎn)載于:https://www.cnblogs.com/dyc0113/p/3192766.html
總結(jié)
以上是生活随笔為你收集整理的关于函数返回值的讨论与总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [MySql] - 解决部署的服务器没有
- 下一篇: [置顶] CopyU!v2插件合集 [2