static-members相关内容
最近尝试下面的程序,它编译,运行良好,产生预期的输出,而不是任何运行时错误。 #include class demo { public: static void fun() { std :: cout
..
这是如何存储静态数组的后续问题在Java内存中?。因此C / C ++中的全局变量存储在内存的静态数据段中。 但是在Java / C ++中的静态类变量呢? 它不能是静态数据段,因为你不知道什么/在整个程序的持续时间(因为反射)。这绝对不是堆栈,因为这没有任何意义。 解决方案 在Java中,在一个低级别,类静态变量确实存储在堆上,以及所有其他类元数据。对于Java,它们看起来像
..
这是协议。我有一个静态类,它包含用于获取输入的几个静态函数。该类包含一个私有静态成员变量,用于指示用户是否输入了任何信息。每个输入法检查用户是否输入任何信息,并相应地设置状态变量。我认为这将是一个好时机使用三元运算符。不幸的是,我不能,因为编译器不喜欢这样。 我复制了这个问题,然后简化我的代码尽可能多,理解。这不是我的原始代码。 这是我的头文件: #include
..
我有一个类如下所示: //。h file class __declspec(dllimport )MyClass { public: // stuff private: static int myInt; }; // .cpp文件 int MyClass :: myInt = 0; 我得到以下编译错误: 错误C2491:'MyCl
..
我发现自己,我倾向于没有私人类函数。如果可能,所有候选人私人类函数,而不是我把未命名的命名空间,并传递所有必要的信息作为函数参数。我没有一个健全的解释为什么我这样做,但至少它看起来更自然地对我。因此,我需要在头文件中显示更少的内部细节。 你的意见是什么 - 是正确的做法吗? 只是说不,并隐藏cpp文件中的私有。 如果我将在一个大型c ++项目上开始新的项目,我将强制使用PIMPL
..
我试图创建一个通用函数,从std :: vector删除重复。由于我不想为每个向量类型创建一个函数,我想让这个模板函数可以接受任何类型的向量。这是我有: // foo.h Class Foo { template static void RemoveVectorDuplicates(std :: vector& vectorToUpdat
..
我试图初始化一个静态对象没有成功。目的是在存储库(这是一个单例)中自动注册一个工厂类。 我已经看过了:
..
当我想有一个静态指针作为类的成员我需要 constexpr 用于初始化 nullptr 。 class Application { private: constexpr static Application * app = nullptr; } 有人可以解释我为什么需要这样做吗?我找不到在编译时必须存在静态变量的确切原因。 解决方案 '在类定义内部初始化它
..
在C ++ 11和C ++ 14中,为什么我需要 constexpr : class Foo { static constexpr double X = 0.75; }; ,但这会产生编译器错误: class Foo { static const double X = 0.75; }; (更奇怪的是)这个编译没有错误? cla
..
我遇到了以下情况: struct Foo { static constexpr char s [ ] =“Hello world”; }; const char Foo :: s []; 此代码片段使用Clang 3.7进行编译( -std = c ++ 11 和 -std = c ++ 14 ),但GCC(4.8,6.0,相同的语言设置)
..
使用案例: class A { static int s_common; public: static int getCommon()const {s_common; }; }; 通常这会导致错误: 错误:static成员函数'static int A :: getCommon()'不能有 cv-qualifier b $ b
..
在非模板化库类中有一个静态成员的最好方法是 ,而不会给类用户定义成员的负担? 说我想要提供这个类: class i_want_a_static_member { static expensive_resource static_resource_; public: void foo() { static_resource_.bar(); } };
..
我不知道初始化静态向量的方式是否比下面更好? class Foo { static std :: vector MyVector; Foo() { if(MyVector.empty()) { MyVector.push_back(4); MyVector.push_back(17); MyVector.push_back(20); } } }
..
什么是静态变量设计? static 解决方案 static 有四个单独的用途,其中只有两个是密切相关的: static在全局和命名空间范围(应用于变量和函数)内部联系 这由替换未命名的命名空间,并且与其余的 无关,其他的往往暗示某种唯一性,但内部链接意味着可以有多个具有相同名称的对象,只要每个对象都有内部链接,并且每个转换单元只有一个 静态数据成员在类 的所有实例
..
我在Mac OS X上使用Qt 4.7和Cmake 2.8.3与g ++ 4.2.1。 使用静态链接器时出现了一个奇怪的链接器错误或全局变量在我的一个文件。 以下是错误: ld:CMakeFiles / GLBall.dir / src / DesktopMain中的ColorTrail :: calculateColorUniformLocation .cpp.o和CMakeFi
..
在那里。 阅读这里有关服务定位器模式,它让我认为只有静态成员的类真的是走的路,或者如果一个正常的c状的interace不会更合适。我看到人们甚至在他们甚至不需要它的时候都会抛出类关键字。 从链接页面获取静态成员类的示例: class Locator { public: static IAudio * GetAudio服务_; } static void注册(IA
..
我有一个类有一些静态成员,我想运行一些代码来初始化它们(假设这个代码不能转换成一个简单的表达式)。在Java中,我只需要做 class MyClass { static int myDatum; static { / *做一些计算,设置myDatum * / } } 除非我错了,C ++不允许这样的静态代码块,对吧? 我想为以下两个选项提供解决
..
阅读sbi和Eli Bendersky在这个问题我开始想知道什么是静态成员函数。 类的朋友自由函数应该不能做任何一个静态成员函数可以做什么? 解决方案 一般情况下: 需要访问私有成员 static成员函数可以访问类的私有成员。如果需要,可以使用静态成员函数。你必须在标题中声明它,让它访问,所以你可以使它成为一个成员,而不是一个朋友。对于具有作为singleton的getI
..
我想知道这是什么意思,我在看的代码 在.h typedef void(* MCB)(); static MCB m_process; in .C MCB Modes :: m_process = NULL; 有时候我会做 m_process(); 我得到分段错误,这可能是因为内存已释放, ?
..
考虑下面的类 class Foo { typedef bool(* filter_function) * node,std :: list& arg); void filter(int filter,std :: list& args) { ... if(filter& FILTER_BY_EVENTS
..