走進C++世界------臨時物件使用
通過下面的例子我們可以瞭解到臨時物件,在程式中建立和銷燬的過程。
1、 使用一個臨時物件來初始化一個新物件時,編輯器一般會優化為直接使用臨時物件的引數來建立新物件。
臨時物件不會直接被銷燬掉。
2 、 使用一個臨時物件來賦值一個物件時,臨時物件建立完會直接被銷燬掉。
/*File: temp.cpp
*Author: sin
*Date: 2014-4-26
*Mail: 413977143@qq.com
*/
#include <iostream>
#include <string>
using namespace std;
class Teacher{
string name;
string course;
public:
Teacher(const char *name1 ,const char *course1):name(name1),course(course1){
cout << "建立" << course1 << "老師:" << name1 << endl;
}
Teacher(const Teacher& t):name(t.name),course(t.course){
cout << "複製" << course << "老師:" << name << endl;
}
~Teacher(){
cout << "辭退" << course << "老師:" << name << endl;
}
};
int main()
{
Teacher t1("阿輝","C++");
Teacher t2 = t1;
//使用臨時物件來初始化一個新物件,編譯器一般會優化
//成直接用建立臨時物件的引數來建立新物件。臨時物件不會被直接釋放掉
Teacher t3 = Teacher("bb","UC");
t2 = t3;
cout << "***************************************"<<endl;
//用臨時物件來賦值一個物件,臨時物件會被直接釋放掉
t2 = Teacher("aaa","諮詢");
cout << "***************************************"<<endl;
Teacher t4("cc","C++");
return 0;
}
相關文章
- C++臨時物件C++物件
- 走進Oracle世界Oracle
- 臨時物件物件
- 小問題大思考之 C++ 臨時物件C++物件
- 從 flutter demo走進flutter 世界Flutter
- 【C#——走進你的世界】C#
- c++臨時物件導致的生命週期問題C++物件
- C++ lambda 引用捕獲臨時物件引發 coredump 的案例C++物件
- [] == ![],走進==隱式轉換的世界
- 走進ADAMoracle預言機的世界Oracle
- 走進Spring Cloud Alibaba的世界SpringCloud
- 帶您走進松本行弘的程式世界
- 走進Linux的世界,需要怎麼做Linux
- 一張圖帶你走進Retrofit原始碼世界原始碼
- Miox帶你走進動態路由的世界路由
- std::ostringstream::str()返回臨時物件物件
- Three.js - 走進3D的奇妙世界JS3D
- 走進Java Android 的執行緒世界(一)JavaAndroid執行緒
- c++臨時變數的作用域C++變數
- Oracle 基礎 ----臨時表和物件表Oracle物件
- C++ 物件的使用C++物件
- 走進JavaWeb技術世界4:Servlet 工作原理詳解JavaWebServlet
- 手把手帶你走進Babel的編譯世界Babel編譯
- 帶你走進webpack世界,成為webpack頭號玩家。Web
- 帶您走進七週七語言的程式世界
- C++異常處理與臨時副本C++
- C++臨時變數的生命週期C++變數
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- oracle 臨時表的使用Oracle
- SQLServer臨時表的使用SQLServer
- 走進JavaWeb技術世界10:從JavaBean講到SpringJavaWebBeanSpring
- CSS基本知識點——帶你走進CSS的新世界CSS
- 視覺化,帶你走進“真實”的虛擬世界視覺化虛擬世界
- 圖靈教育帶您走進松本行弘的程式世界圖靈
- 帶你走進Oracle資料安全的世界一觀(轉)Oracle
- 完美世界:變革進行時
- 走進JavaWeb技術世界3:JDBC的進化與連線池技術JavaWebJDBC
- 一個關於臨時物件的BUG(下) (轉)物件