可变数据成员: 有时我们希望能修改某个类的数据成员,即使是在一个 const 成员函数内。可以通过在变量的声明中加入 mutable 关键字来声明一个可变数据成员。mutable 是为突破 const 的限制而设置的。被 mutable 修饰的变量将永远处于可变状态中,即使是在一个 const 成员 ...
分类:
其他好文 时间:
2017-12-26 00:46:03
阅读次数:
153
函数重载 函数重载的定义是:在相同的作用域中,如果函数具有相同名字而仅仅是形参表不同,此时成为函数重载。注意函数重载不能基于不同的返回值类型进行重载。 注意函数重载中的“形参表”不同,是指本质不同,不要被一些表象迷惑。main函数不能被重载。 下面三组定义本质是相同的,不是重载: 1)int sum ...
分类:
编程语言 时间:
2016-10-17 14:11:35
阅读次数:
146
C++不允许依靠顶层const的区别来定义重载函数,例如下面的做法将造成重复声明,原因是调用时形参为const int的函数可以接受int的实参(经过隐式类型转换) void print(int)
void print(const int) //重复声明,无...
分类:
其他好文 时间:
2015-07-24 16:17:00
阅读次数:
132
C++pimer中文版第四版 378页 基于const的重载如果我们要在一个类的成员函数中定义两个函数签名完全一样的成员函数,比如display,那么可以基于是否是const成员函数来重载。比如://非const对象可以使用可以使用任意成员,但是下面这个匹配的更好,所以一般用这个成员函数Screen...
分类:
编程语言 时间:
2015-04-28 18:14:23
阅读次数:
169
1. 基于 const的重载
为了解决这个问题,我们必须定义两个display 操作:一个是const,另一个不是const。基于成员函数是否为const,可以重载一个成员函数;
同样地,基于一个指针形参是否指向const(第7.8.4 节),可以重载一个函数。const对象只能使用const 成员。
非const 对象可以使用任一成员,但非const 版本是一个更好的匹配。 在此,我们将...
分类:
编程语言 时间:
2014-07-10 22:09:07
阅读次数:
228
类--隐含的this指针引言: 在前面提到过,成员函数具有一个附加的隐含形参,即指向该类对象的一个指针。这个隐含形参命名为this,与调用成员函数的对象绑定在一起。成员函数不能定义this形参,而是有编译器隐含地定义。成员函数可以显式的使用this指针,但不是必须这么做。1、何时使用this指针 有一种情况下,我们必须显式使用this指针:当需要将一个对象作为整体引用而不是引用对象的一...
分类:
编程语言 时间:
2014-04-29 13:21:21
阅读次数:
371