bry*_*mon 7 c++ static-members
我有一个C++类(class1)与另一个类(class2)的静态对象作为私有成员.
我知道在使用该程序时我将初始化静态对象,我可以使用默认构造函数(不需要的值).
是否有可能只将静态对象初始化为我想要的值一次,并且只有当我创建包含类(class1)的对象时?
任何帮助,将不胜感激.
Set*_*gie 15
是.
// interface
class A {
static B b;
};
// implementation
B A::b(arguments, to, constructor); // or B A::b = something;
Run Code Online (Sandbox Code Playgroud)
但是,即使您没有创建A类的实例,它也会被初始化.除非你在构造函数中使用指针并初始化一次,否则你不能以任何其他方式执行它,但这可能是一个糟糕的设计.
如果你真的想要,那么这是如何:
// interface
class A {
A() {
if (!Bptr)
Bptr = new B(arguments, to, constructor);
// ... normal code
}
B* Bptr;
};
// implementation
B* A::Bptr = nullptr;
Run Code Online (Sandbox Code Playgroud)
但是,就像我说的那样,这很可能是一个糟糕的设计,而且它有多线程问题.
| 归档时间: |
|
| 查看次数: |
24241 次 |
| 最近记录: |