成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++常量引用正確應用方法

開發 后端
C++常量引用的操作,首先需要建立一個臨時變量。具體的操作方法將會在這篇文章中為大家詳細介紹。希望能給大家帶來一些幫助。

C++編程語言中,對于常量的引用是一個非常重要的應用技巧。在這篇文章中,我們將會為大家詳細介紹一下有關C++常量引用的相關應用方法,相信大家可以從中學到很多知識。#t#

如果是對一個常量進行引用,則編譯器首先建立一個臨時變量,然后將該常量的值置入臨時變量中,對該引用的操作就是對該臨時變量的操作。對C++常量引用可以用其它任何引用來初始化;但不能改變。

關于引用的初始化有兩點值得注意:

(1)當初始化值是一個左值(可以取得地址)時,沒有任何問題;

(2)當初始化值不是一個左值時,則只能對一個const T&(常量引用)賦值。而且這個賦值是有一個過程的:

首先將值隱式轉換到類型T,然后將這個轉換結果存放在一個臨時對象里,***用這個臨時對象來初始化這個引用變量。

例子:

 

  1. double& dr = 1; // 錯誤:需要左值  
  2. const double& cdr = 1; // ok 

 

第二句實際的過程如下:

 

  1. double temp = double(1);  
  2. const double& cdr = temp

 

 

作函數參數時:

 

  1. // bc_temp_objects_not_bound_to_nonconst_ref.cpp  
  2. // compile with: /EHsc  
  3. #include "iostream"  
  4. using namespace std;  
  5. class C {};  
  6. void f(C & c) { cout << "C&" << endl; }  
  7. void f(C const & c) { cout << "C const &" << endl; }  
  8. int main() {  
  9. f(C());  

 

結果:

C const &

更直接的,用基本類型:

 

  1. #include <iostream> 
  2. using namespace std;  
  3. void display(int const &ref) {cout<<ref<<'\n';}  
  4. int main()  
  5. {  
  6. int i=1;  
  7. display(i);  
  8. int const anotheri=2;  
  9. display(anotheri);  
  10. display(2);  
  11. display(1+2);  
  12. display(static_cast<int>(3.14159));  

 

通過C++常量引用從函數返回一個局部對象:

一般從一個函數返回一個局部對象的引用是不對的:
 

 

  1. T & my_op ( void )   
  2. {   
  3. T t;   
  4. return t;   
  5. } // The T object t got destroyed here so the 
    returned reference is not valid anymore.  

 

特殊情況:返回一個常引用

 

  1. const T & my_op ( void )   
  2. {   
  3. T t;   
  4. return t;   
  5. }   
  6. const T & my_t_obj = my_op ();  

 

在這個情況下,局部變量 t 不會被直接析構,而是會保留到 my_t_obj 的生命周期結束為止。

總之,C++常量引用語法上可以引用一個臨時變量。這種方法在使用引用作函數參數和返回局部變量時有意義。我目前看來常量引用主要用在作函數參數或保證不修改原變量的時候。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-01 15:26:44

C++ inline函

2010-02-05 14:12:46

C++聲明放置

2010-05-28 15:16:40

MySQL 資源

2009-12-07 14:38:14

PHP foreach

2010-03-04 14:02:51

Python大小寫

2010-02-22 10:42:12

WCF Stream

2010-02-22 14:09:08

WCF Dispose

2010-05-25 18:01:35

linux MySQL

2010-05-28 19:20:36

MySQL mysql

2010-01-25 09:28:54

Android模擬器

2010-07-21 10:50:48

SQL Server存

2010-07-26 17:43:34

SQL Server

2010-03-04 13:30:11

Python file

2010-03-04 09:40:52

Python Clas

2011-03-30 17:20:18

C++引用

2021-07-02 16:13:01

區塊鏈金融數據庫

2010-03-05 15:01:29

Python解析XML

2010-08-18 16:45:40

IBM DB2 Cat

2010-03-03 17:58:16

Python同步隊列

2010-01-25 11:29:33

Android計時器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天射中文| 福利视频网址 | 亚洲视频 欧美视频 | 亚洲每日更新 | 国产精品毛片久久久久久久 | 中文字幕日韩欧美一区二区三区 | 精品一区二区三区在线观看 | 中文字幕 欧美 日韩 | 免费一区| 成人片在线看 | 国产农村妇女毛片精品久久麻豆 | 亚洲欧美日韩久久 | 日韩av一区二区在线观看 | 成人综合视频在线 | 亚洲激情在线观看 | 毛片一级片 | 欧美一级免费看 | 欧美中文字幕一区二区三区亚洲 | 亚洲精品一区二区三区中文字幕 | 天堂成人国产精品一区 | 在线不卡av | 天堂av中文 | 国产99久久精品一区二区永久免费 | 国产成人精品久久二区二区91 | 亚洲精品欧美 | www国产成人免费观看视频,深夜成人网 | 天天综合久久 | 亚洲欧美日韩中文字幕一区二区三区 | 久久精品视频亚洲 | 欧美日韩高清一区二区三区 | 国产亚洲精品久久久久动 | 91精品国产乱码久久久久久 | 国产日韩久久久久69影院 | 影音先锋亚洲资源 | 91精品国产一区二区三区 | 精品在线一区二区三区 | av在线播放免费 | 欧美日本久久 | av黄色在线| 国产欧美精品 | 亚洲精品二区 |