我有一堂课:
class SymbolIndexer {
protected:
SymbolIndexer ( ) { }
public:
static inline SymbolIndexer & GetUniqueInstance ( )
{
static SymbolIndexer uniqueinstance_ ;
return uniqueinstance_ ;
}
};
我应该如何修改它以禁用代码,例如:
SymbolIndexer symbol_indexer_ = SymbolIndexer::GetUniqueInstance ( );
并且只允许以下代码:
SymbolIndexer & ref_symbol_indexer_ = SymbolIndexer::GetUniqueInstance ( );
原文由 Humble Debugger 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以将复制构造函数设为私有并且不提供任何实现:
或者在 C++11 中,明确禁止它: