![]() |
1
2
最后的“const”告诉编译器此方法不会更改任何成员变量-在const实例上调用此方法是安全的。因此,可以对const实例调用Save,因为它不会更改该实例。另一方面,Load将更改实例,因此不能在const实例上使用。 operator()的const版本传回一个const指针,保证传回的缓冲区不会改变。可能是指向类的实例变量的指针。对于非常量实例,other运算符()将返回一个非常量指针。它必须是指向某个内存的指针,即使写入该内存,也不会更改实例的内容。 还有,找时间查一下“mutable”关键字。理解这一点将有助于理解const正确性的概念。 |
![]() |
2
8
不,A
非常量版本返回
因为这是不允许的
|
![]() |
3
2
(*)-另请参见关键字mutable。 |
![]() |
4
1
C++允许方法重载
|
![]() |
5
1
除其他答案外,还有一个注释:没有
是转换运算符,这意味着类的对象可以隐式转换为C样式的字符串,如
|
![]() |
6
1
如果你正在寻找一个伟大的C++资源(包括使用技巧)
一个有用的网站: JRiddel.org
在C++中声明方法时
这个
多个版本非常有用,因此编译器可以理解这一点:
|
![]() |
7
1
你应该提到 “因为知道何时推荐使用 常量 类成员的修饰符: 高完整性CPP规则3.1.8 正当理由 :尽管语言强制执行按位常量正确性,但应将常量正确性视为逻辑性,而不是按位。如果客户端无法确定对象是否因调用该函数而更改,则应将成员函数声明为const。“mutable”关键字可用于声明可在const函数中修改的成员数据,仅当成员数据不影响对象的外部可见状态时才应使用此关键字。
参考有效C++项目21;工业强度C++ 7.13; |
![]() |
8
0
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |