偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

C++編程語言中,對(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++常量引用可以用其它任何引用來初始化;但不能改變。

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

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

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

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

例子:

 

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

 

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

 

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

 

通過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++常量引用語法上可以引用一個(gè)臨時(shí)變量。這種方法在使用引用作函數(shù)參數(shù)和返回局部變量時(shí)有意義。我目前看來常量引用主要用在作函數(shù)參數(shù)或保證不修改原變量的時(shí)候。

責(zé)任編輯:曹凱 來源: 博客園
相關(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ù)庫

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)