c – 错误:’.’标记之前的预期unqualified-id
发布时间:2020-12-16 10:46:22 所属栏目:百科 来源:网络整理
导读:class A{ private: A () {} public: static A* getInstance () { return new A (); }};int main (){ A.getInstance (); return 0;} 导致标题中指出的错误.我确实意识到如果我在A类中创建一个变量并在那里实例化并直接返回它,那么错误就会消失. 但是,在这里我
class A { private: A () {} public: static A* getInstance () { return new A (); } }; int main () { A.getInstance (); return 0; } 导致标题中指出的错误.我确实意识到如果我在A类中创建一个变量并在那里实例化并直接返回它,那么错误就会消失. 但是,在这里我想了解这个错误的含义是什么,为什么我不能这样使用它. 解决方法
您需要使用范围解析运算符调用该方法 – :::
A::getInstance (); 此外,如果这是一个单身人士,那就非常糟糕了.每当你调用getInstance()时,你都会收到一个新对象,如果忘记删除任何实例,你将遇到内存泄漏. 单例通常是这样实现的: class A { private: A () {} static A* instance; public: static A* getInstance () { if ( !instance ) instance = new A (); return instance; } }; //implementation file A* A::instance = NULL; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |