Если бы я создал простой объект на C ++, в чем разница между возвратом адреса члена и возвратом указателя. Насколько мне известно, в C ++ нет автоматической сборки мусора, поэтому он не будет вести счетчик ссылок. Так зачем кому-то делать это так:
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;
};
Я понимаю, что это позволит вам получить доступ к данным членов, но меня не беспокоит правильная инкапсуляция в этом простом примере. Так в чем разница? Ускорение? Читаемость? Стиль?