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