您从经验中学到了哪些与 C++ 相关的习语、误解和陷阱?
一个例子:
class A
{
public:
char s[1024];
char *p;
A::A()
{
p = s;
}
void changeS() const
{
p[0] = 'a';
}
};
甚至知道changeS是一个const成员函数,它是改变对象的值。所以一个 const 成员函数只是意味着它将所有变量都视为 const,并不意味着它实际上会保留所有成员 const。(为什么?成员函数上的 const 关键字将 char *p; 视为 char * const p; 而不是 const char *p;
因此,这意味着 p 不能指向其他东西。并不是说你不能改变 p 的数据。