小编Bri*_*sey的帖子

协变cv限定符是否适用于C++中的原始类型?

在C++中,减少派生类中返回类型的cv限定符是有效的:

class Base {
    virtual const Base* f();
};

class Derived : public Base {
    Base* f() override;
};
Run Code Online (Sandbox Code Playgroud)

这对指向原始类型的指针有效吗?

class Base {
    virtual const int* f();
};

class Derived : public Base {
    int* f() override;
};
Run Code Online (Sandbox Code Playgroud)

c++ const covariance

7
推荐指数
1
解决办法
167
查看次数

显式调用基类析构函数/构造函数是否合法?

是否合法地构造和构造基类对象以重置基类已知的状态部分?

class C : public BaseClass {...};

C c;
c.BaseClass::~BaseClass();
new (static_cast<BaseClass*>(&c)) BaseClass;
Run Code Online (Sandbox Code Playgroud)

显然,如果我们可以访问类的源代码,还有其他方法可以实现这种效果.但是,我想从语言角度了解是否存在无效的具体原因.

c++ inheritance constructor destructor

5
推荐指数
1
解决办法
1286
查看次数

标签 统计

c++ ×2

const ×1

constructor ×1

covariance ×1

destructor ×1

inheritance ×1