членам?
Преимуществ нет, тебя всегда будут клеймить новичком, когда ты так делаешь
чтобы не получилось чего-то такого class C { public: int x; setX(int x){ x = x; } };
Нереальный кейс, ага
тут то это легко обнаружить
Во первых, в member init list-е даже с одинаковым названием такого не произойдёт. Во-вторых, никто не называет члены-данные и параметры одинаково. Ни один разумный человек, уточним
а параметры класса по умолчанию private ?
Не нужно ломать голову над конвенцией имён для членов класса, изменение имени локальной переменной никогда не сделает её случайно обращением к члену класса
Это решается не явным указыванием this, а включением хотя бы каких-то ворнингов в проекте
как ты предлагаешь назвать параметр, если я хочу показать, что мне нужна строка, к примеру. Но поле string у меня есть
Назвать string – в принципе такая себе идея, учитывая то, что это название типа
И да назвать _string или string_, раз уж нет такой конвенции для полей
только этот тип находится в п.и. std, а мой аргумент — нет
Кого волнует?
подчеркивания в начале это кривая дорожка
Не поможет. Как компилятор поймёт, что ты действительно именно к полям обращаться хочешь, а не к аргументам?
Ну, это всё же не та область видимости
Продемонстрируйте, пожалуйста
Ты в игрушки играть пришёл или писать код нормальный?
https://godbolt.org/z/v4x9Er4E8
И вообще, в любом нормальном кодстиле такое учтено. А писать в компании ты будешь по какому-то кодстилю
при чем тут игрушки? Я не люблю подчеркивания
Включаем -Werror, как должно быть в любом новом (и старом) проекте и все
Тогда std::string __std_string__; Так красивее
в этом конкретном случае можно, конечно, но сам прецедент создание идентификатора с подчеркивания не очень для кодовой базы в целом, я считаю
Я бы сказал, прецедент создания идентификатора с названием _ – не очень. И то, что из-за этого сложности с введением дискардов только доказывает подобное
где я там сказал, что они public?
Упс, не досмотрел...
Обсуждают сегодня