亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

C++返回對象和返回引用

時間:2025-12-28 11:32:47 C語言 我要投稿

C++返回對象和返回引用

  引用的本質(zhì)是對裸露的地址的二次包裝,它實際返回的還是一個變量或?qū)ο蟮牡刂,因此如果返回引用不可以返回局部變量的,因為函?shù)在返回之后,該變量就銷毀。下面是其C++返回對象和返回引用,一起來學習下吧:

  代碼是對運算符*進行重載,返回引用和返回對象有不同的結果。

  [cpp] view plain copy#include

  using namespace std;

  class A

  {

  public:

  A() { cout << "A::A()" << endl;}/pic/p>

  A(A& another){cout << "A(A& another)" << endl;}

  ~A(){ cout << "~A::A()" << endl;}/pic/p>

  void func(){ cout << "class A::void func()" << endl;}

  };

  class B

  {

  public:

  B(A* p) :_p(p){cout << "B::B()" << endl;}/pic/p>

  ~B(){ cout << "~B::B()" << endl; }/pic/p>

  A operator*(){ /pic/p>

  return *_p;

  }

  private:

  A* _p;

  };

  int main(){

  A p1;

  B p2(&p1);

  (*p2).func();

  return 0;

  }

  中,返回的是A類的對象,之后會調(diào)用A中的拷貝構造器

  A(A& another);

  即用*_p的值作為參數(shù),在內(nèi)存中構造一個新的對象,但它沒有名字,是無名對象,之后運行該無名對象中的func()函數(shù),運行完后,這個一次性的無名對象就會銷毀,即調(diào)用析構函數(shù)。

  同時,返回對象的話也不能在后續(xù)對它進行左值運算,編譯器通不過而且也毫無意義,因為之后程序員是沒法訪問到這個無名變量的

  僅此個人觀點,有問題歡迎指正。


【 C++返回對象和返回引用】相關文章:

C++ 中引用和指針的關系11-08

C語言函數(shù)的參數(shù)和返回值10-18

關于C和C++函數(shù)的相互引用02-25

c++ const引用與非const引用02-07

Java中對象和引用的具體區(qū)別11-22

C語言函數(shù)的返回值10-12

C語言返回多個值的方法08-27

C++ 中指針和引用區(qū)別有哪些01-09

網(wǎng)頁點擊按鈕返回頂部代碼11-30

  • 相關推薦