类中带有参数的静态对象成员初始化
Static object member initialization with parameters in class
尽管我在这个网站上尝试了多次搜索,但我没有找到正确的答案。我再次提出这个问题。
通常,静态对象成员应该在源文件中初始化。
//header file
class A{
private:
static B* bPoint ;
public:
static void init(int argc, char** argv);
...
};
//Source file:
B A::bPoint = new B() //Normally, this should OK.
但问题是默认的B建筑是私人的,现在我不得不使用另一个公共建筑
B(int argc, char** argv);
在这种情况下,new B()将发出编译错误。。那么如何初始化A类中的静态bPoint?
静态成员应该在源文件中定义,但请注意,您可以首先使用空指针初始化它:
// source file:
B* A::bPoint; // note the pointer to B
然后,如果您的问题是将A::init()
的参数转发给B()
的构造函数,那么您可以在A::init()
:中为bPoint
分配一个对象
A::init(int argc, char** argv)
{
bPoint = new B(argc, argv);
}
相关文章:
- CPU 瓶颈;处理具有许多非静态对象的 3D 场景渲染的简单方法
- 我可以读取静态对象中的文件.txt吗?C++
- 通过 Gazebo 世界插件将静态对象附加到机器人链接
- 将对象创建为全局/静态对象会崩溃,而本地对象不会崩溃
- 内联函数的函数本地静态对象是否在共享对象文件之间共享?
- 将 C# 对象(包含静态对象成员)作为参数传递给 C++/CLI 程序
- 完全释放静态对象内存
- 静态对象指针
- C++文件中.cpp静态对象声明
- C++类中定义静态对象
- 在初始化类的静态对象之前,是否保证初始化该类的静态成员?
- 静态对象如何调用私有构造函数
- cpp 静态对象实例化
- 等效于 Java 静态对象类C++
- 我怎么知道C++编译器是否制作线程安全的静态对象代码
- 在dlclose()之前破坏的静态对象
- 有没有办法为静态对象成员定义一个符合开关标准的常量?
- c++ 防止类共享静态对象
- 什么时候构造函数为静态对象
- 为什么本地静态对象的初始化使用隐藏的防护标志?