C++中的const可用于修饰变量、函数,且在不同的地方有着不同的含义,现总结如下。const的语义C++中的const的目的是通过编译器来保证对象的常量性,强制编译器将所有可能违背const对象的常量性的操作都视为error。对象的常量性可以分为两种:物理常量性(即每个bit都不可改变)和逻辑常量...
                            
                            
                                分类:
编程语言   时间:
2016-01-01 21:04:56   
                                阅读次数:
242
                             
                    
                        
                            
                            
                                条款05:了解C++默默编写并调用哪些函数默认构造函数、拷贝构造函数、拷贝赋值函数、析构函数构成了一个类的脊梁,只有良好的处理这些函数的定义才能保证类的设计良好性。当我们没有人为的定义上面的几个函数时,编译器会给我们构造默认的。当成员变量里有const对象或引用类型时,编译器会不能合成默认的拷贝赋值...
                            
                            
                                分类:
编程语言   时间:
2015-11-22 17:26:47   
                                阅读次数:
233
                             
                    
                        
                            
                            
                                const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const whenever you need”。1.用const 修饰函数的参数如果参数作输出用,不论它是什么数据类...
                            
                            
                                分类:
编程语言   时间:
2015-10-28 18:52:09   
                                阅读次数:
236
                             
                    
                        
                            
                            
                                对于const类对象,类指针, 类引用, 只能调用类的const成员函数.1.const成员函数不允许被修改它所在对象的任何一个成员变量.2.const成员函数能访问对象的const成员, 而其他成员函数不可以.#include using namespace std;class CTest{pri...
                            
                            
                                分类:
编程语言   时间:
2015-10-25 22:27:25   
                                阅读次数:
222
                             
                    
                        
                            
                            
                                const成员函数的一般好处有:它使得class接口比较容易理解。它使得操纵const对象成为可能。使用的过程中应该在const与non const成员函数之间避免代码重复:class TextBlock{ public: ... const char & operator[...
                            
                            
                                分类:
其他好文   时间:
2015-10-04 21:01:32   
                                阅读次数:
248
                             
                    
                        
                            
                            
                                1. 左值与右值: C++对于左值和右值没有标准定义,但是有一个被广泛认同的说法:可以取地址的,有名字的,非临时的就是左值;不能取地址的,没有名字的,临时的就是右值. 可见立即数,函数返回的值等都是右值;而对象(包括变量),函数返回的引用,const对象等都是左值. 从本质上理解,创建和销毁由...
                            
                            
                                分类:
其他好文   时间:
2015-08-21 13:05:51   
                                阅读次数:
184
                             
                    
                        
                            
                            
                                对象初始化列表出现原因 
1) 如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,没有默认构造函数。这时要对这个类成员进行初始化,就必须调用这个类成员的带参数的构造函数,如果没有初始化列表,那么他将无法完成第一步,就会报错。 
2) 当类成员中含有一个const对象时,或者是一个引用时,他们也必须要通过成员初始化列表进行初始化,因为这两种对象要在声明后马上初...
                            
                            
                                分类:
编程语言   时间:
2015-08-19 20:29:23   
                                阅读次数:
130
                             
                    
                        
                            
                            
                                const成员函数和普通成员函数可以是同名同参数吗? 可以,这是一种函数的重载。 const成员函数可不可以修改对象的成员变量的值? 不可以修改。//error C3490: 由于正在通过常量对象访问"year",因此无法对其进行修改 非const成员函数是否可以访问const对象成员? 不可以访问...
                            
                            
                                分类:
编程语言   时间:
2015-08-13 21:56:53   
                                阅读次数:
288
                             
                    
                        
                            
                            
                                const(常量)限定符
        const 定义的变量不能被改变,因此 const 对象必须初始化。
        对象的类型决定了其上的操作,const 对象只能执行不改变其内容的操作。例如用一个对象初始化另一个对象并不会改变本对象的值,只是进行了一次拷贝而已,一但拷贝完成,新的对象和原本的对象就毫无瓜葛了。
        默认情况下,const 对象仅在本文件内有效,当多个...
                            
                            
                                分类:
其他好文   时间:
2015-08-13 18:09:36   
                                阅读次数:
138
                             
                    
                        
                            
                            
                                (一)extern在头文件中的用法
因为头文件包含在多个源文件中,并且变量的定义只能出现一次,所以在头文件中, 只可以声明不可以出现定义。我们可以在头文件中用extern声明全局变量,这样在包含此头文件的cpp 中可直接使用 声明过的这个全局变量(如以下程序中的变量a)。
但是有三个例外:
1.头文件中可以定义类
2.值在编译时就已经知道的const对象
3.可以定义inline函数
...
                            
                            
                                分类:
编程语言   时间:
2015-08-13 14:28:31   
                                阅读次数:
158