Если бы я должен был создать простой объект в С++, в чем разница между возвратом адреса члена или возвратом указателя. Насколько мне известно, С++ не имеет автоматической сборки мусора, поэтому не будет содержать счетчик ссылок. Итак, почему кто-то сделает это так:
class CRectangle {
public:
string& getName( );
int& getWidth( );
int& getHeight( );
private:
string name;
int height;
int width;
};
а не таким образом:
class CRectangle {
public:
string* getName( );
int* getWidth( );
int* getHeight( );
private:
string name;
int height;
int width;
};
Я понимаю, что это позволит вам получить доступ к данным о членах, но я не беспокоюсь о правильной инкапсуляции в этом простом примере. Так в чем разница? Ускорение? Читаемость? Стиль?