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

C++常量引用正確應(yīng)用方法

開發(fā) 后端
C++常量引用的操作,首先需要建立一個(gè)臨時(shí)變量。具體的操作方法將會(huì)在這篇文章中為大家詳細(xì)介紹。希望能給大家?guī)?lái)一些幫助。

C++編程語(yǔ)言中,對(duì)于常量的引用是一個(gè)非常重要的應(yīng)用技巧。在這篇文章中,我們將會(huì)為大家詳細(xì)介紹一下有關(guān)C++常量引用的相關(guān)應(yīng)用方法,相信大家可以從中學(xué)到很多知識(shí)。#t#

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

關(guān)于引用的初始化有兩點(diǎn)值得注意:

(1)當(dāng)初始化值是一個(gè)左值(可以取得地址)時(shí),沒有任何問(wèn)題;

(2)當(dāng)初始化值不是一個(gè)左值時(shí),則只能對(duì)一個(gè)const T&(常量引用)賦值。而且這個(gè)賦值是有一個(gè)過(guò)程的:

首先將值隱式轉(zhuǎn)換到類型T,然后將這個(gè)轉(zhuǎn)換結(jié)果存放在一個(gè)臨時(shí)對(duì)象里,***用這個(gè)臨時(shí)對(duì)象來(lái)初始化這個(gè)引用變量。

例子:

 

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

 

第二句實(shí)際的過(guò)程如下:

 

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

 

 

作函數(shù)參數(shù)時(shí):

 

  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());  

 

結(jié)果:

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));  

 

通過(guò)C++常量引用從函數(shù)返回一個(gè)局部對(duì)象:

一般從一個(gè)函數(shù)返回一個(gè)局部對(duì)象的引用是不對(duì)的:
 

 

  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.  

 

特殊情況:返回一個(gè)常引用

 

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

 

在這個(gè)情況下,局部變量 t 不會(huì)被直接析構(gòu),而是會(huì)保留到 my_t_obj 的生命周期結(jié)束為止。

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

責(zé)任編輯:曹凱 來(lái)源: 博客園
相關(guān)推薦

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

區(qū)塊鏈金融數(shù)據(jù)庫(kù)

2010-03-05 15:01:29

Python解析XML

2010-08-18 16:45:40

IBM DB2 Cat

2010-03-03 17:58:16

Python同步隊(duì)列

2010-01-25 11:29:33

Android計(jì)時(shí)器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 九九九视频 | 久久噜噜噜精品国产亚洲综合 | 欧美一区二区三区久久精品视 | av日韩一区 | 国产在线激情视频 | 91社区视频 | 亚洲视频三区 | 97精品超碰一区二区三区 | 欧美精品国产精品 | 久久一级 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 99久久久久 | 国产成人在线播放 | 精品无码久久久久久国产 | www.精品一区| 操射视频| 国产精品久久久久久久久大全 | 久久久久国产精品午夜一区 | 成人午夜电影网 | h片免费在线观看 | 婷婷五月色综合香五月 | 中文字幕av网站 | 中文字幕一区二区三区乱码图片 | 欧美1区| 中文字幕黄色大片 | 久久久久成人精品免费播放动漫 | 日日操夜夜干 | 欧美中文一区 | 精久久久| 色婷婷久久 | 国产精品伦一区二区三级视频 | 韩国精品在线观看 | 伊人二区| 欧美久久久久久久 | 精品香蕉一区二区三区 | 国产精品久久久久影院色老大 | 成人片免费看 | 福利在线观看 | 亚洲高清视频在线观看 | 国产成人一区二区三区电影 | 国产综合精品 |