Предположим, у меня есть такой класс:
class Foo : boost::noncopyable
{
public:
Foo(int a, int b);
const int something;
const int something_else;
const std::string another_field;
// and that's that, no more methods nor fields
};
Теперь, есть ли практическая разница между доступом к объектам этого класса через Foo&
, в отличие от const Foo&
, кромечто эти два являются двумя разными типами?
Не должно быть никакой разницы для доступа к его полям , так как они const
, поэтому к ним будет обращаться через const T&
в любом случае.
Но есть ли какая-либо разница, когда речь идет о классе в целом?Возможно, это связано с шаблонами?Что-нибудь?
Теперь, когда templatetypedef написал хороший ответ , который, к сожалению, в этом случае не поможет, я думаю, было бы неплохо подчеркнуть, что это очень много о что вы можете сделать, когда у вас уже есть ссылка (обратите внимание на все эти «обращения»), а не о том, что вы можете привязать к ссылке.
Итак, вы можете предположить, что ссылка ужетам, привязанный к некоторому объекту.Теперь все о том, что с этим можно сделать.