C 匿名物件

2021-10-22 23:58:33 字數 1267 閱讀 1630

匿名物件(臨時物件) (自動構造,自動析構)

c++的建立物件是乙個費時,費空間的乙個操作。

有些固然是必不可少,但還有一些物件卻在我們不知道的情況下被建立了。

通常以下三種情況會產生匿名物件:

1.以值的方式給函式傳參,會產生臨時物件,為方便區分,稱為"引數匿名物件";

2.函式需要返回乙個物件時,會產生臨時物件,為方便區分,稱為"返回匿名物件"

3.型別轉換時,會產生臨時物件,為方便區分,稱為"轉換匿名物件";

以如下**為例進行解釋說明:

基礎面試中常遇到的:實現string類的四個預設函式

#include #include #include class string

public:

string()

string(const char *srcchar)

else

destructor!

}~string()

str_ = nullptr;

len_ = 0;

}string(const string& srcstring)

string& operator=(const string& srcstring)

else

len_ = srcstring.length();

str_ = new char[len_ + 1];

str_[len_] = '\0';

memcpy(str_, srcstring.str_, len_);

return *this;}}

private:

char* str_ = nullptr;

int len_ = 0;

};string getstring(string src)

string getstring1(string src)

void getstring2(string src)

string getstring3()

int main()

執行結果:

執行結果說明:

C 臨時匿名物件

匿名物件 臨時的物件,一般都是在構造完就被釋放掉了 有特殊情況,返回值優化 1.返回值優化 若是函式返回的匿名物件返回時候有同型別的新物件接上,則該匿名物件被轉化為新物件。1 include iostream 2 using namespace std 34 classa5 13 a a obj 1...

匿名物件和匿名類

一,匿名物件 匿名物件 沒有名字的物件 new car 匿名物件其實就是定義物件的簡寫格式。car c new car c.run 用匿名物件來書寫以上 new car run 匿名物件的使用方法 1 當物件對方法僅進行一次呼叫的時候,就可以簡化成匿名物件。如乙個 物件需要進行呼叫方法2次,用匿名物...

匿名型別與匿名物件

var匿名型別 推斷型別 var可代替任何型別,編譯器會根據上下文來判斷你到底是想用什麼型別,類似 object,但是效率比object高點。我們可以賦予區域性變數推斷 型別 var而不是顯式型別。var 關鍵字指示編譯器根據初始化語句右側的表示式推斷變數的型別。推斷型別可以是內建型別 匿名型別 使...