为什么在引用工作时我只看到用于多态的指针?我知道引用只能绑定一次,但这是唯一的原因吗?我的意思是,你必须重新分配它们总是吗?
答案 0 :(得分:1)
一个原因是从factory返回引用将是really bad idea。
正如评论中所指出的,你可以使用与引用相同的语义(除了使它们为空),我的观点是这需要不自然的语法,例如在工厂中:
return */*<--*/object_ptr; // dereferencing a pointer to match return type of factory
用户代码:
Base& ref= Factory::GetObject(//...
//...
delete &/*<--*/ref;
或
auto object = make_unique<Base>(&/*<--*/Factory::GetObject(//...