Предположим, у меня есть класс с именем MyClass,Функция, которая возвращает указатель на класс
Я пишу функцию, которая должна возвращать объект типа MyClass. Этот объект уже существует до вызова функции. Так обычно я хотел бы сделать:
MyClass function() {
return MyClassInstance;
}
Но потом я вспомнил про указатели и ссылки, и я думаю, что сделать это будет создавать новую копию MyClassInstance и вернуть его, что это пустая трата памяти. Поэтому я подумал, почему бы не сделать что-то вроде этого:
MyClass * function() {
return &MyClassInstance;
}
Таким образом, результат может быть доступны, как,
Myclass * object;
object = function();
object->"class member"...
Является ли это правильно?
Я не уверен, что понимаю, что вы имеете в виду. Можете ли вы предоставить некоторые детали, пожалуйста? – jazzybazz
Код, который вы написали, не имеет проблем. Но вам нужно знать, что вы хотите сделать. Если вы просто хотите ссылаться на один и тот же объект где-то другим указателем, не изменяя значения исходного объекта или просто изменяя его значения, как вы полагаете. Тогда это идеальный способ сделать это. Потому что он может сэкономить память с помощью указателя. Если вам нужен новый объект, то этот способ может быть вредным. Потому что будут два указателя, указывающие на единственный объект. Любые изменения с помощью любого указателя будут влиять на состояние объекта. Вы должны заботиться об этой ситуации. Я ясно выразился? – YXHJ513
Да, большое спасибо. – jazzybazz