Задать вопрос
@have_a_nice_day13

Имеет ли смысл такой вид передачи аргументов в метод класса?

Допустим, что у нас имеется класс с вложенной структурой и так же имеется метод класса который будет взаимодействовать с этой структурой. Структура имеет имя типа структуры и допустимый идентификатор для доступа к этой структуре без лишнего объявления её извне.

class test_habr_t
{
public:
struct data_types_t
{
int number = 0;
} data_types;

void method_1(data_types_t& data_types) { data_types.number = 8; };
void method_2(data_types_t data_types) { printf("%i", data_types.number); };

];


И собственно у меня встаёт вопрос, а имеет ли смысл передавать структуру в виде параметра (с ссылкой)? если в виде аргумента будет допустимый идентификатор объявленный в классе.

Вопрос очень расплывчатый, в любом из случаев всё это индивидуально, поэтому хотелось бы услышать ваше мнение насчёт моего примера и увидеть ваши примеры, когда нужно, а когда нет.
  • Вопрос задан
  • 89 просмотров
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Не совсем понятен вопрос, но есть комментарии по стилю в method1. Лучше передавать указатель вместо неконстантной ссылки. Так из места вызова сразу видно, что передаваемое значение может меняться. На некоторых проектах это прописанно в правилах.

Если вы про имя параметра, то обычно члены класса делают приватными и это как-то отражается в имени. Например, в конце имени ставится _. А у аргумена функции - нет. Вот они и будут различными. Если же вам нужен именно публичный член класса, то не проблема, что они совпадают, ибо из метода можно обратиться к члену через this и параметру просто так. Но это опасно - можно где-то перепутать и лучше все-таки чтобы имена параметров методов и членов класса не совпадали.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы