Sha*_*iar 4 c++ singleton c++11 c++14
我实现了像Singleton模式这个,还有我的代码:
头文件:
class Settings_manager{
public:
    static Settings_manager& get_instance();
    void operator=(Settings_manager const&) =delete;
    Settings_manager(Settings_manager const&) =delete;
...
private:
    Settings_manager();
};
执行:
Settings_manager& Settings_manager::get_instance()
{
    static Settings_manager instance;
    return instance;
}
Settings_manager::Settings_manager()
{
    read_file();
}
当我尝试使用这样的get_instance函数main:
Settings_manager set = Settings_manager::get_instance();
要么 Settings_manager set = std::move(Settings_manager::get_instance());
我明白了
error: use of deleted function 'Settings_manager::Settings_manager(const Settings_manager&)'
 Settings_manager set = Settings_manager::get_instance();
有人能说出来,有什么不对并解释一下吗?谢谢.
Bar*_*rry 15
考虑一下你在这里要做的事情:
Settings_manager set = Settings_manager::get_instance();
你有你的单身人士,get_instance()而你正试图复制它?如果你可以......创造其中两个正确的话,这会破坏单身人士的目的吗?
你想参考:
Settings_manager& set = Settings_manager::get_instance();
这样,set 就是单例实例.不是它的副本.
get_instance返回对单例的引用,然后将其存储在本地Settings_manager变量中,该变量需要进行复制.  set应该是一个参考变量:
Settings_manager &set = Settings_manager::get_instance();