1. 程式人生 > >C++ 中 return this 和 return *this 的區別

C++ 中 return this 和 return *this 的區別

我們都知道c++   this指標的概念(可參考),this指標說白了就是存放當前物件的地址;

那麼 我們可以理解為  *this為去改指標的內容即是當前的物件,所以return *this 返回的應該是當前的物件本身或者說是該物件的克隆 ;

而this既然為指標,改指標指向的是當前的物件,所以return this表示返回當前物件的地址;

相關推薦

C#的isas操作符區別小結

devel 獲取 d3d 數據 bottom 技術 datagrid idv center 1. is 是驗證操作對象是不是自己希望的 運算公式:對象 is 類型 返回true:對象是指定類型 返回false:對象不是指定類型 2. as 是將對象轉換成指定類型

關於C++的繼承過載的區別

        C++中的很多特性光從概念上的話,很難做區分。或者說,概念讓人容易模糊,比如說函式過載和函式繼承。        先說過載,過載分為操作符過載和函式名過載,其中,操作符過載就是對運算操作符的原有功能進

《隨筆二十》—— C++的“ delete delete [] 的區別

  c++中對new申請的記憶體的釋放方式有delete和delete[]兩種方式,到底這兩者有什麼區別呢? 1.我們通常從教科書上看到這樣的說明: delete 釋放new分配的單個物件指標指向的記憶體 delete[] 釋放new分配的物件陣列指標指向的記

c++int,char的區別特性。

雖然談不上十分難懂或者十分重要,但是希望大家可以全面瞭解一下關於int 和char。 下面是轉載文章: 1.int型別和char型別的區別 比較下面三個定義式的區別: int i = 1; char i = 1; char i = ‘1’; int用來定義整型變數,char用來定義字元型變數

[轉載]C++的structclass的區別

C++中的struct對C中的struct進行了擴充,它已經不再只是一個包含不同資料型別的資料結構了,它已經獲取了太多的功能。 struct能包含成員函式嗎? 能! struct能繼承嗎? 能!! struct能實現多型嗎? 能!!! 既然這些它都能實現,那它和clas

C#結構體類的區別

結構體和類同樣能夠定義欄位,方法和建構函式,都能例項化物件,這樣看來結構體和類的功能好像是一樣的了,但是他們在資料的儲存上是不一樣的C#結構體和類的區別問題:這兩種資料型別的本質區別主要是各自指向的記憶體位置不同。傳遞類的時候,主要表現為是否同時改變了源物件。1.結構體是值型

【知識積累】C#結構體類的區別

【類】     類是對現實生活中一類具有共同特徵的事物的抽象。類的實質是一種資料型別,類似於int、char等基本型別,不同的是它是一種複雜的資料型別。因為它的本質是型別,而不是資料,所以不存

c++關於堆堆疊的區別

     從以往我們接觸c++這門語言開始就知道有堆和棧,棧我們一直稱之為堆疊,剛開始是個小白的時候就一直不明白堆疊到底是堆還是棧。   在C++中,記憶體分成5個區,他們分別是堆、棧、自由儲存區、全域性/靜態儲存區和常量儲存區。       棧,就是那些由編譯器在需要的時候

C++Public StaticPrivate Static區別

Static: 靜態成員的關鍵字,表示不能例項化,在你執行的時候他自己已經在記憶體中開闢了塊空間,所以不用new, 可以直接呼叫。類似全域性變數。  特點:  1、訪問static成員,用類而不是例項化的物件;  2、static方法只能訪問static屬性;&nb

C++引用型別指標型別區別

引用型別和指標型別區別    引用型別是C++11引入的複合型別,所以C語言並沒有引用型別。    一般在初始化變數時,初始值會被拷貝到新建的物件中。然而在定義引用時,程式把引用和它的初值繫結在一起,而不是將初值拷貝給引用。一旦初始化完成,引用將它的初始值物件繫結在一起。因為

C++iostream.hiostream的區別

#include <iostream.h>非標準輸入輸出流 #include <iostream>標準輸入輸出流 C++中為了避免名字定義衝突,特別引入了“名字空間的定義”,即namespace。 1,當代碼中用<iostre

C# Flush DisposeClose的區別

【個人學習過程記錄,不一定準確】 你寫了一個程式,其中要對硬碟上的一個檔案操作,FileStream fs = new FileStream(fileName)這樣就是建立了一個檔案緩衝流,換句話的意思就是說你通過這條程式,計算機給了一一塊記憶體空間,但是呢這塊記憶體空

學習一下C#常用集合陣列的區別,雖然很基礎,但感覺很實用

在C#中,當我們想要儲存一組物件的時候,就會想到用陣列,ArrayList,List這三個物件了。那麼這三者到底有什麼樣的區別呢?我們先來了解一下陣列,因為陣列在C#中是最早出現的。 陣列 陣列有很多的優點,比如說陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且

C#索引器屬性的區別

索引器允許類或者結構的例項按照與陣列相同的方式進行索引取值,索引器與屬性類似,不同的是索引器的訪問是帶參的。索引器和陣列比較:(1)索引器的索引值(Index)型別不受限制(2)索引器允許過載(3)索引器不是一個變數索引器和屬性的不同點(1)屬性以名稱來標識,索引器以函式形式

C#抽象類介面的區別

大家都容易把這兩者搞混,我也一樣,在聽李建忠老師的設計模式時,他也老把抽象類說成介面,弄的我就更糊塗了,所以找了些網上的資料.    一、抽象類:    抽象類是特殊的類,只是不能被例項化;除此以外,具有類的其他特性;重要的是抽象類可以包括抽象方法,這是普通類所不能的。抽象方法只能聲明於抽象類中,且不包含任何

C++ return this return *this區別

我們都知道c++   this指標的概念(可參考),this指標說白了就是存放當前物件的地址;那麼 我們可以理解為  *this為去改指標的內容即是當前的物件,所以return *this 返回的應該是當前的物件本身或者說是該物件的克隆 ;而this既然為指標,改指標指向的是

return *thisreturn this有什麼區別

return *this返回的是當前物件的克隆或者本身(若返回型別為A, 則是克隆, 若返回型別為A&, 則是本身 ); return this返回當前物件的地址(指向當前物件的指標)。this指標裡面存放的是當前物件的地址。 #include <iostream> us

今天看到的一個有趣面試題:return *thisreturn this有什麼區別

      別跟我說, return *this返回當前物件, return this返回當前物件的地址(指向當前物件的指標)。       正確答案為:return *this返回的是當前物件的克隆或者本身(若返回型別為A, 則是克隆, 若返回型別為A&, 則是本

return *thisreturn this有什麼區別

別跟我說, return *this返回當前物件, return this返回當前物件的地址(指向當前物件的指標)。       正確答案為:return *this返回的是當前物件的克隆或者本身(若返回型別為A, 則是克隆, 若返回型別為A&, 則是本身

Javathissuper關鍵字區別

1.  super關鍵字表示的是子類呼叫父類的中指定的操作。例如:呼叫屬性,方法,構造等.  因為在子類例項化的時候會預設呼叫父類的無參構方法,如果現在希望呼叫友殘構造,則必須在子類中明確的宣告。 舉例: public class ExtDemo05 { publ