不是类或命名空间 我的C++有点生疏了。有人知道为什么我在访问I时在main()中看到“不是类或命名空间”编译时错误吗 #include <iostream> using namespace std; class Singleton2 { Singleton2(){ i = 0; } public: int i; friend Singleton2 & singleton2(); }; Singleton2 & singleton2(){ static Singleton2 ms; return ms; } int main() { Singleton2 ms = singleton2(); int i = ms::i; // error: `ms' is not a class or namespace cout << i << endl; } #包括 使用名称空间std; 单音2类{ 单音2(){ i=0; } 公众: int i; 朋友Singleton2&Singleton2(); }; Singleton2和Singleton2(){ 静态单频2ms; 返回ms; } int main(){ Singleton2 ms=Singleton2(); int i=ms::i;//错误:`ms'不是类或命名空间 您可以使用点操作符访问非静态成员,而不是范围解析操作符: int i = ms.i;
请注意,下面的作业不是类或命名空间 我的C++有点生疏了。有人知道为什么我在访问I时在main()中看到“不是类或命名空间”编译时错误吗 #include <iostream> using namespace std; class Singleton2 { Singleton2(){ i = 0; } public: int i; friend Singleton2 & singleton2(); }; Singleton2 & singleton2(){ static Singleton2 ms; return ms; } int main() { Singleton2 ms = singleton2(); int i = ms::i; // error: `ms' is not a class or namespace cout << i << endl; } #包括 使用名称空间std; 单音2类{ 单音2(){ i=0; } 公众: int i; 朋友Singleton2&Singleton2(); }; Singleton2和Singleton2(){ 静态单频2ms; 返回ms; } int main(){ Singleton2 ms=Singleton2(); int i=ms::i;//错误:`ms'不是类或命名空间 您可以使用点操作符访问非静态成员,而不是范围解析操作符: int i = ms.i;,c++,C++,请注意,下面的作业 Singleton2 ms = singleton2(); 复制你的单件。你的singleton2()返回一个引用,因此你可能也应该将ms作为一个引用: Singleton2 &ms = singleton2();
Singleton2 ms = singleton2();
复制你的单件。你的singleton2()
返回一个引用,因此你可能也应该将ms
作为一个引用:
Singleton2 &ms = singleton2();