我有一个“ StripManager”类,负责更新已经存在的“ Strip”类的数据。因此,管理者需要对试条的引用。现在,我知道可以将指向“ Strip”类的指针传递给“ StripManager”类的构造函数,但是我想知道是否有使用引用而不是指针的方法。我只是一直喜欢处理引用,因为您像实际的类实例一样使用它们,而不必处理指针符号等。
这样可以做到吗?
这是一些伪代码...
class StripManager
{
public:
Strip &managedStrip;
StripManager(Strip &stripToManage);
}
StripManager::StripManager(Strip &stripToManage)
{
managedStrip = stripToManage;
}
您可以初始化引用,但不能将其分配给它,因此您需要为此使用成员初始化器列表。无论如何,在构造函数中使用它而不是赋值是一个好习惯,因为它可以提高效率。
StripManager::StripManager(Strip &stripToManage) : managedStrip (stripToManage)
{
}
请注意,拥有引用成员会使其StripManager
不可分配(StripManager a(strip1), b(strip2); a = b;
除非您编写自定义赋值运算符,否则将无法编译;即使那样,由于无法分配引用,因此尚不清楚语义应该是什么),这可能是也可能不是问题取决于您的具体情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句