我们知道,在成员函数中,如果没有修改成员变量,应该给成员函数加上 const 修饰符,例如 如果不加 const 修饰符,当使用 const 对象调用成员函数时,编译报错: 由测试可知: const 对象有一个隐藏含义:保证成员变量不变。 const 变量还可以作为函数签名的一部分: 可以看到 co ...
分类:
其他好文 时间:
2017-06-09 14:03:52
阅读次数:
143
本文为senlie原创。转载请保留此地址:http://blog.csdn.net/zhengsenlie Item 31 经验:避免返回handles(包含 references、指针、迭代器)指向对象内部。遵守这个条款可添加封装性, 帮助 const 成员函数的行为像个 const,并将发生“虚 ...
分类:
编程语言 时间:
2017-06-07 22:27:49
阅读次数:
192
1. const修饰普通变量和指针 const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即va ...
分类:
编程语言 时间:
2017-05-27 13:30:42
阅读次数:
173
预备知识 1、代码转换分析技巧 在早期某些编译器会将C++代码翻译为C代码,然后使用C编译器生成可执行文件。其中翻译的一个转化就是:将this指针显式添加到成员函数的第一个参数位置上,因为C中没有OOP的支持,并在成员函数调用时,自动将对象的地址传递给参数this。 这个过程用如下代码解释: #in ...
分类:
编程语言 时间:
2017-05-15 14:15:45
阅读次数:
258
c++类中可以用const关键字来声明不修改对象的成员函数,它使用时需要注意: 1、常量对象只能调用const成员函数 2、非常量对象可以调用const成员函数 以下列代码为例,来解释: 程序编译结果为: [Error] passing 'const Person' as 'this' argume ...
分类:
编程语言 时间:
2017-04-29 22:14:56
阅读次数:
229
派生类经常(但不总是)覆盖它继承的虚函数。如果派生类没有覆盖其基类中的某个虚函数,则该虚函数的行为类似于其他的普通成员,派生类会直接继承其在基类中的版本。 c++11允许派生类显式地注明它使用某个成员函数覆盖了它继承的虚函数。具体做法是在形参列表后面、或者在const成员函数的const关键字后面、 ...
分类:
编程语言 时间:
2017-03-05 14:20:25
阅读次数:
186
1.类 性质关键字:protected:类和派生类可以使用 内联,重载,常成员函数不能修改,mutable不受不受const成员函数影响。 构造函数:可以重载,没有返回值。内嵌类,被包含先构造,最后被释放,包含的反过来 拷贝构造函数:default和delete用法 1 //delete可以禁用默认... ...
分类:
其他好文 时间:
2017-02-20 22:46:37
阅读次数:
172
条款01:把C++看作一个语言联邦 C++是一种多重范型编程语言,一个同时支持过程(procedural),面向对象(object-oriented),函数形式(functional),泛型形式(generic),元编程(metaprogramming)的语言 1、c part of C++,c++ ...
分类:
编程语言 时间:
2016-11-20 19:00:44
阅读次数:
201
const 放在函数后表示这个函数是常成员函数, 常成员函数是不能改变成员变量值的函数。const 限定符,它把一个对象转换成一个常量。举例:为了使成员函数的意义更加清楚,我们可在不改变对象的成员函数的函数原型中加上const说明:class Point{public:int GetX() cons ...
分类:
其他好文 时间:
2016-11-12 23:34:46
阅读次数:
375
effecticv C++第三条就说到,在设计类时要尽量使用const,当函数不会改变类的成员是,通常都会将该函数声明为const,但是const函数内部如何实现的呢? 首先我们应该从C++类的成员函数实现说起。 在类temp中,函数fun1()是非const的,函数fun2()是const类型的。 ...
分类:
其他好文 时间:
2016-10-02 12:52:43
阅读次数:
100