Как правило, рекомендуется избегать такого рода путаницы, используя соглашение об именах для переменных-членов. Например, camelCaseWithUnderScore_ довольно часто встречается. Таким образом, вы получите x_ = x;
, что по-прежнему немного забавно читать вслух, но на экране довольно однозначно.
Если вам абсолютно необходимо , чтобы переменные и аргументы назывались одинаково, вы можете использовать указатель this
, чтобы быть конкретным:
class Foo {
public:
int x, y;
void set_values(int x, int y)
{
this->x = x;
this->y = y;
}
};
Кстати, обратите внимание на конечную точку с запятой в определении класса - это необходимо для успешной компиляции.