`

C++ Primer 笔记五 引用(const)1

    博客分类:
  • c++
 
阅读更多

定义 const 对象
常量在定义后就不能被修改,所以定义时必须初始化


在全局作用域声明的 const 变量是定义该对象的文件的局部变量。此变量只存在于那个文件中,不能被其他文件访问。
这种情况解决办法:通过指定 const 变更为 extern,就可以在整个程序中访问 const 对象
// file_1.cc
  extern const int bufSize = fcn();
// file_2.cc
  extern const int bufSize;
  for (int index = 0; index != bufSize; ++index)
  // ...
非 const 变量默认为 extern。要使 const 变量能够在其他的
文件中访问,必须地指定它为 extern。

引用

引用就是对象的另一个名字。在实际程序中,引用主要用作函数的形式参数。

引用是一种复合类型,通过在变量名前添加“&”符号来定义。
int ival = 1024;
int &refVal = ival; // ok: refVal refers to ival

当引用初始化后,只要该引用存在,它就保持绑定到初始化时
指向的对象。不可能将引用绑定到另一个对象。
int a = 122;
int &b = a;
int &c = b;
cout<<a+++b+++c<<" "<<a+++b+++c<<endl;  //==>366 372


const 引用是指向 const 的引用,“const 引用”的意思是“指向 const 对象的引用”。
const int iVal = 1024;
const int &refVal = iVal;
//int &ref2 = iVal; //error

const 引用 初始化对于非 const 引用却是不合法的,而且会导致编译时错误。
int i = 42;
int &r = i;
const int &r2 = r + i;
//int &r2 = r + i;//error

 

非 const 引用只能绑定到与该引用同类型的对象。

double dval = 3.14;

const int &ri = dval;//ok

//int &ri = dval;//error


分享到:
评论
1 楼 sblig 2012-02-24  
#include <stdio.h>
#include <iostream>
using namespace std;

int main() {

	//const 引用是指向 const 的引用,“const 引用”的意思是“指向 const 对象的引用”。
	const int iVal = 1024;
	const int &refVal = iVal;
	//int &ref2 = iVal; //error

	//const 引用可以初始化为不同类型的对象或者初始化为右值
	//const 引用 初始化对于非 const 引用却是不合法的,而且会导致编译时错误。
	int i = 42; //  legal for const references only
	const int &r = 42;
	//int &r = 42;//error
	const int &r2 = r + i;
	// int &r2 = r + i; //error

	//非 const 引用只能绑定到与该引用同类型的对象
	double dval = 3.14;
	const int &ri = dval;
	//int &ri = dval; //error


	return 0;

}

相关推荐

    c++ primer笔记

    根据给定的信息,“c++ primer笔记”主要围绕经典著作《C++ Primer》展开,这是一本深受程序员喜爱的书籍,旨在帮助读者系统地学习和掌握C++编程语言的基础及高级特性。下面将从几个关键方面对C++的核心知识点进行...

    C++Primer笔记

    本笔记基于 C++ Primer 的学习笔记,涵盖了友元函数、操作符重载、运算符重载、using 声明和引用等多个知识点。 友元函数 友元函数是一种特殊的函数,它可以访问类的私有成员。通过让函数成为类的友元,赋予该函数...

    C++Primer 笔记(不完整版)

    《C++ Primer 笔记》概述 C++ Primer 是一本深入学习C++...这仅仅是C++ Primer笔记的冰山一角,完整的学习涵盖更多内容,如类、模板、异常处理、STL容器等。深入理解这些概念对于成为一名熟练的C++程序员至关重要。

    C++Primer 读书笔记

    ### C++ Primer 读书笔记概览 #### 操作系统与主函数 - **主函数返回值的意义**:操作系统依据`main`函数返回的值来判定程序执行的状态,其中,0值意味着程序成功运行至结束。非零返回值,具体含义由操作系统定义...

    c++primer 学习笔记

    C++ Primer 是一本经典的C++学习书籍,涵盖了C++的基础知识和高级特性。这篇学习笔记主要涉及了C++编程的一些核心概念,包括程序结构、变量、基本类型、初始化与赋值、可读性、常量与引用、typedef、枚举以及标准库...

    C++Primer笔记1

    【C++ Primer 笔记1】 C++ 是一种强大的编程语言,它有着丰富的特性和严格的类型系统。在学习C++时,了解并掌握其基本概念和技术是非常重要的。本笔记主要涵盖了C++的一些关键知识点,包括预处理器、类型系统、命名...

    C++primer全书笔记

    《C++ Primer 全书笔记》是一份专为C++初学者设计的学习资源,由一位计算机专业学生在找工作的过程中为了复习C++ Primer而编写的详细笔记。笔记以易懂的方式介绍了C++的基础概念和核心特性,对于那些基础知识不扎实...

    C++primer 笔记章节版.docx

    C++ Primer 笔记 C++ Primer 是一本深入学习C++编程语言的经典教材,它涵盖了C++的基础到高级概念,包括语法、数据类型、控制结构、复合类型、类和对象等核心主题。以下是对笔记中提及的一些关键知识点的详细解释:...

    C++Primer Plus学习笔记(三)

    C++ primer plus学习笔记之三,分为一下几个部分: 函数参数:介绍了函数的生命规则以及定义 数组函数:数组作为变量时的使用方法 指针和const:灵活运用指针和const 函数和二维数组:二维数组作为变量时声明以及定义...

    C++ Primer 中文版(第四版)学习笔记~

    以上是C++ Primer第四版学习笔记中涉及的一些核心知识点。这些知识点涵盖了C++编程的基础语法、数据类型、容器、指针、内存管理以及控制结构等多个方面,对于初学者理解和掌握C++语言具有重要意义。希望这些内容能够...

    《C++ Primer》学习笔记(25)IO库

    ### 《C++ Primer》学习笔记(25):深入理解C++ IO库 #### 一、概述 本文档基于《C++ Primer》中的IO库章节,重点介绍C++标准库中与输入输出相关的概念和技术。主要内容包括不同IO操作之间一致性的实现方式、基本...

    C++ Primer 第十四章 重载操作符与转换 思维导图笔记

    在C++编程语言中,重载操作符与转换是两个重要的概念,它们允许程序员自定义基本操作符的...通过阅读《C++ Primer》第四版第十四章的思维导图笔记,你可以深入学习这些概念,巩固理论知识,并在实际编程中应用它们。

    《C++_Primer》MSDN读书笔记

    "C++ Primer读书笔记" 本文总结了C++ Primer读书笔记的要点,涵盖了C++语言的基础知识,包括变量、基本类型、常量、输入输出等。 1. 变量和基本类型 C++语言中有多种基本类型,包括整型、浮点型、字符型等。在...

    C++primer读书笔记

    ### C++ Primer 读书笔记概览 在深入探讨C++ Primer各章节的精要之前,我们先简要回顾一下这本经典教材的核心价值。《C++ Primer》是学习C++编程语言的必读之选,它不仅覆盖了C++的基础语法,还深入讲解了面向对象...

    C++ primer学习笔记一

    在C++编程中,`C++ Primer`是一本经典的入门教材,主要介绍C++的基础概念和技术。本篇学习笔记主要涵盖了前三章的内容,重点关注STL(Standard Template Library,标准模板库)中的容器、特别是vector的使用,以及...

    C++Primer 类型转化

    ### C++ Primer 类型转化 #### 一、类型转换概述 在C++中,类型转换是一种常见的编程技术,用于将一种数据类型转换为另一种数据类型。这种转换可以在编译时或运行时发生,并且可以是隐式的(自动进行)或显式的...

    C++ Primer笔记

    C++ Primer笔记主要涵盖C++语言的基础语法和标准库的使用。以下是这些知识点的详细解释: 1. **基本语法**: - **main函数**:程序的入口点,其返回值用于表示程序执行状态,0表示成功执行。 - **标准输入与输出*...

    《C++ Primer》学习笔记(27)顺序容器

    ### 《C++ Primer》学习笔记(27)顺序容器 #### 9.1 顺序容器概述 在C++中,顺序容器是一类用于存储数据的容器,其中元素的位置依赖于其添加到容器中的顺序。这与关联容器形成了对比,关联容器中的元素位置是由其...

    C++primer笔记

    ### C++ Primer 笔记知识点总结 #### 2.1 类型定义与基本数据类型 - **基础数据类型**:包括 `char` 和 `wchar_t`。`char` 类型通常用于存储单个字符,而 `wchar_t` 类型则用于宽字符(如 Unicode 字符)。 - **...

Global site tag (gtag.js) - Google Analytics