【发布时间】:2012-02-13 18:55:19
【问题描述】:
假设我有这样的课程:
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 has written a nice answer,不幸的是在这种情况下没有帮助,我认为最好强调一下当你已经有参考时你能做什么(请注意所有这些“访问”),而不是您可以绑定到引用的内容。
因此,您可以假设 ref 已经存在,并绑定到某个对象。现在是关于可以用它做什么。
【问题讨论】:
-
附带说明,如果您有两个
Foos,分别称为a和b,则分配a = b是非法的。这就是你想要的吗? -
@FredOverflow:是的,它甚至是明确的:
class Foo : boost::noncopyable。
标签: c++ constants language-lawyer