Каковы некоторые идиомы, заблуждения и gotchas, связанные с С++, которые вы узнали из опыта?
Пример:
class A
{
public:
char s[1024];
char *p;
A::A()
{
p = s;
}
void changeS() const
{
p[0] = 'a';
}
};
Даже знаю, что changeS - это функция-член const, она меняет значение объекта. Таким образом, функция const member означает, что она будет обрабатывать все переменные как const, и это не означает, что она фактически сохранит все члены const. (почему? ключевое слово const в функции-члена рассматривает char * p; as char * const p; И не как const char * p;
Это значит, что p не может указывать на что-то другое. И не то, что вы не можете изменить p данных.