Я не знаю, существует ли такая опция.
Но если его не существует, вы можете сделать следующее. На самом деле соглашение об именах является предпочтительным, даже если существует некоторая опция компилятора, чтобы избежать проблемы в вопросе, поскольку она охватывает более широкую область проблем:
class A {
int m_test; //use some naming conventions!
void f() { int test; }
};
То есть, используйте некоторые правила в именовании переменных-членов, например, префикс каждой с m_
, как в m_test
, или суффикс, как в test_
. Это обычный подход, принятый многими программистами, и во многих компаниях есть аналогичные правила, которые они применяют при кодировании.
Такие соглашения об именах не только помогают избежать проблемы, с которой вы столкнулись, но и повышают удобочитаемость и удобство обслуживания, поскольку имя test
ничего не говорит о том, является ли это локальной переменной или переменной-членом в отсутствие соглашений об именах. Но как только вы примете некоторые соглашения об именах, такие вещи станут ясными.