C等价的C#静态类
发布时间:2020-12-16 10:12:26 所属栏目:百科 来源:网络整理
导读:所以在C#中,当我想创建全局可用的函数/变量时,我会创建一个静态类… // SomeClass.cspublic static class SomeClass{ private static int bar; public static int Foo() { return bar; }} 如果我想在C中做同样的事情,这基本上是一回事吗? // SomeClass.hcla
所以在C#中,当我想创建全局可用的函数/变量时,我会创建一个静态类…
// SomeClass.cs public static class SomeClass { private static int bar; public static int Foo() { return bar; } } 如果我想在C中做同样的事情,这基本上是一回事吗? // SomeClass.h class SomeClass { private: int bar; public: SomeClass(); ~SomeClass(); int foo(); }; extern SomeClass gSomeClass; 在…… // SomeClass.cpp #include "SomeClass.h" SomeClass gSomeClass; SomeClass::SomeClass() { bar = 0; //.... } SomeClass::~SomeClass() { //.... } int SomeClass::foo() { return bar; } 在…… #include "SomeClass.h" int main() { return gSomeClass.foo(); // (basically) } 这样做会有问题吗? 解决方法
听起来你正试图实施
singleton pattern.关于何时应该使用这种模式由于“全局变量不好”的普遍情绪,存在很多争论,但在我看来它有合法的用例.关键字“singleton”应该足以让您研究模式的各种C实现,并找到许多关于使用它的优缺点的讨论.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |