我有一个函数接口:避免拷贝初始化时参考
struct iFace {
virtual Type& getType() = 0;
}
和想法是检索它喜欢:
iFace& iface = getIface();
Type& type = iface.getType();
然而,我偶尔我做了错误,并写上:
Type type = iface.getType();
哪个按值复制,这是我想要避免。但是,当我犯这样的错误时,编译器不会因为它的合法语法而发出警告。我想为此触发编译时错误,问题我的替代方法是什么?
我想过声明拷贝构造函数,但没有在任何地方定义它,如果它的使用造成的链接时错误,但后来我将无法使用拷贝构造函数任何情况,小于desiderable
你无法真正拥有它。 – 2011-04-27 21:18:47
这就是我所害怕的,所以我想在这里要求确认。感谢您的确认 – lurscher 2011-04-27 21:20:02
这取决于类型是什么。如果你可以使类型抽象,那么你将无法创建一个实例。 – 2011-04-27 22:09:40