从共享对象中的类继承
Inheriting from Classes in Shared Object
我想通过继承来扩展Linux共享对象中类的c++ namespace
。可能出现的问题是什么,特别是涉及静态对象和成员数据的问题?
// as a crude example (note: untested code)
// compiled into libBase.so
namespace foo
{
class Cfoo
{
protected:
static double Pi; // defined outside header
public:
Cfoo () {}
double fooPi () { Pi *= Pi; return Pi; }
};
}
// compiled into libDerived.so
namespace foo
{
class Cbar : public Cfoo
{
double barPi () { Pi = sqrt(Pi); return Pi; }
};
}
(class)全局静态变量在不同翻译单元中的初始化顺序未定义。但是,如果将类静态变量Pi包装到成员函数中,则将其替换为局部静态对象。有效的c++条款4:"通过用局部静态对象替换非局部静态对象来避免跨翻译单元的初始化顺序问题。"如果对象保持全局静态,在其他代码使用它之前,它可能保持未初始化。
protected:
static double PI()
{
static double PI = 3.141;
return PI;
}
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 继承函数的重载解析
- 继承期间显示未知行为的子类
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 在cuda线程之间共享大量常量数据
- 头文件-继承c++
- 共享指针继承,而不先显式强制转换
- 嵌套类、继承和C++中的共享指针
- 具有多个继承共享一个资源的对象 - 寻找良好的设计模式
- 继承的共享指针无法get_widget
- 了解班级共享指针及其在继承中的使用
- 如何从实现与其他接口共享的接口的类继承
- 如何在继承级别的多个实例之间共享相同的数据
- C++继承,是否可以只有共享祖父类的 1 个副本
- 通过继承共享的静态受保护资源
- C++通过继承共享库
- 从共享对象中的类继承
- 内存共享;继承;基实例和派生实例;c++
- 通过共享指针生成不同继承类的实例
- 多继承-C++类之间的共享实现