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
第一个事实:某类中可以这么声明定义两个函数,可以重载(overload)void pa(){ cout<<"a"<<endl;}void pa() const{ cout<<"b"<<endl;}上面的写法是正确的。基于这个事实,我思考了一下它的机制。试验得出,第二个事实:普通函数(不是...
分类:
编程语言 时间:
2015-09-22 16:31:11
阅读次数:
137
1. 编译器的警告可能给出很重要的信息,例如:class B{public: virtual void f() const; ...};class D:public B{public: virtual void f(); ...}; 由于B中的f是const成员函数,而D中...
分类:
编程语言 时间:
2015-09-13 10:27:55
阅读次数:
141
const成员函数和普通成员函数可以是同名同参数吗? 可以,这是一种函数的重载。 const成员函数可不可以修改对象的成员变量的值? 不可以修改。//error C3490: 由于正在通过常量对象访问"year",因此无法对其进行修改 非const成员函数是否可以访问const对象成员? 不可以访问...
分类:
编程语言 时间:
2015-08-13 21:56:53
阅读次数:
288
任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出错误,这无疑会提高程序的健壮性。以下程序中,类stack的成员函数GetCount仅用于计数,从逻辑上讲GetCount应当为const函数。编译...
分类:
其他好文 时间:
2015-08-13 14:13:50
阅读次数:
104
在类中的const基本有三种用法constintfunc();//返回值是const类型intfunc(constint);//参数为const类型intfunc(int)const;//为const类型的成员函数,只能调用类中const类型的变量;另外,当类的实例是const类型时,也只能调用类中的const成员函数,且只有类的成员函数才能被修..
分类:
编程语言 时间:
2015-08-06 02:14:35
阅读次数:
202
C++ Primer 学习笔记_24_类与数据抽象(10)--static 与单例模式、auto_ptr与单例模式、const成员函数、const 对象、mutable修饰符
前言
【例】写出面向对象的五个基本原则?
解答:单一职责原则,开放封闭原则,依赖倒置原则,接口隔离原则和里氏替换原则
里氏替换原则:子类型必须能够替换他们的基类型。
设计模式分为三种...
分类:
编程语言 时间:
2015-08-03 01:15:15
阅读次数:
175
const放函数后面什么意思:const 修饰符放到函数后面,准确的说是用来修饰 this 指针 指向的对象的。例如:classStudent{public: getName(int);private: int stu_id;};这里的getName()函数其实有两个参数:第一个是 Studen.....
分类:
其他好文 时间:
2015-07-21 12:39:33
阅读次数:
96