条款03:尽可能使用const

01.顶层const和底层const

char greeting[] = "Hello";
char* p = ;
const char* p = greeting;   //const data,nonconst pointer
char* const p = greeting;       //nonconst data,const pointer
const char* const p = greeting; //const data,nonconst pointer.*的左右位置判断

02.非常量对象可以调用nonconst成员函数和const成员函数(顺序),常量对象只能调用const成员函数。(除非强制转化)

03.在nonconst成员函数中可以调用const成员函数,反之则不行。(可以避免重复代码,反之违反了物理上的const)

总结:

编译器强制执行物理上的const,但是我们编写程序时应该使用逻辑上的const。

时间: 2024-10-19 08:44:51

条款03:尽可能使用const的相关文章

Effective C++ -----条款03:尽可能使用const

如果关键字const出现在星号左边,表示被指物是常量:如果出现在星号右边,表示指针自身是常量:如果出现在星号两边,表示被指物和指针两者都是常量. char greeting[] = " hello"; char* p = greeting;  //non-const pointer,non-const data const char* p = greeting;  //non-const pointer,const data  声明p为一个指向常量的greeting的指针,p指向的对象

Effective C++ 条款3 尽可能用const

1. const可被施加于任何作用域内的对象,函数参数,函数返回类型,成员函数本体.用const修饰指针,如果const出现在*之前,表明指针不能更改所指向的对象的内容,如果const出现在*之后,表明指针只能指向同一块内存.另外int const*p和const int*p含义相同.如果对象成员有普通指针,那么构造该类的一个const对象时,const修饰使得该指针只能指向同一块内存,但指针指向的内容可以改变. 2. 将某些东西声明为const可以帮助编译器侦测出错误用法. 3. 编译器强制实

条款21: 尽可能使用const

对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const,还有,两者都不指定为const: char *p = "hello"; // 非const指针, // 非const数据 const char *p = "hello"; // 非const指针, // const数据 char * const p = "hello"; // const指针, // 非const数据 const char

Effective C++ 条款三 尽可能使用const

参考资料:http://blog.csdn.net/bizhu12/article/details/6672723      const的常用用法小结 1.用于定义常量变量,这样这个变量在后面就不可以再被修改     const int val = 90;      val = 100;   错误 2. 保护传参时参数不被修改,如果使用引用传递参数或按地址传递参数给一个函数,在这个函数里这个参数的值若被修改, 则函数外部传进来的变量的值也发生改变,若想保护传进来的变量不被修改,可以使用const

[Effective C++, 学习总结] 03 尽可能使用const

关键字const,你可以用它在classes外部修饰global或namespace作用域中的常量,或修饰文件.函数.或区块作用域(block scope)中被声明 为static的对象. 也可以用它修饰classes内部的static或non-static成员变量. 1 char greeting[] = "Hello"; 2 char *p = greeting; // non-const pointer, non-const data 3 const char *p = gree

《Effective C++ 》学习笔记——条款03

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 一. Accustoming Yourself to C++ Rule 03: Use const whenever possible. 条款03:尽可能的使用const const就是常量,它允许你指定一个语义约束,编译器会强制实施这项约束. 多才多艺的关键字

条款32: 尽可能地推迟变量的定义

// 此函数太早定义了变量"encrypted" string encryptPassword(const string& password) { string encrypted;//默认构造函数初始化 if (password.length() < MINIMUM_PASSWORD_LENGTH) { throw logic_error("Password is too short"); } 进行必要的操作,将口令的加密版本 放进encrypted

Effective C++ Item 3 尽可能使用const

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie const 出现在*左边指const data,出现在*右边指const pointer char greeting[] = "Hello"; char *p = greeting; //non-const pointer, non-const data const char *p = greeting; //non-const pointer, const data char

effective c++ 条款03 整理

尽可能使用const (1)const约束指针.迭代器 const char* p = "adc"; //non-const pointer,const data char* const p = "abc"; //const pointer,non-const data const char* const p = "abc";//const pointer,const data const std::vector<T>::iterat

Effective C++ 之 Item 3:尽可能使用 const

Effective C++ Chapter 1. 让自己习惯C++(Accustoming Yourself to C++) Item 3. 尽可能使用 const (Use const whenever possible) 1. const 与语义约束 const 允许指定一个语义约束(也就是指定一个"不该被改动"的对象),而编译器强制实施这项约束.它可以在 classes 外部修饰 global 或 namespace(见 Item2)作用域中的常量,或修饰文件.函数.或区块作用域