相关疑难解决方法(0)

函数声明后=删除的含义

class my_class
{
    ...
    my_class(my_class const &) = delete;
    ...
};
Run Code Online (Sandbox Code Playgroud)

= delete在这种情况下意味着什么?

还有其他"修饰符"(除了= 0= delete)吗?

c++ declaration function delete-operator c++11

224
推荐指数
6
解决办法
10万
查看次数

没有纯虚函数的C++抽象类?

我有一个基类

class ShapeF
{
public:
    ShapeF();
    virtual ~ShapeF();

    inline void SetPosition(const Vector2& inPosition) { mPosition.Set(inPosition); }

protected:
    Vector2 mPosition;
}
Run Code Online (Sandbox Code Playgroud)

显然有一些遗漏的代码,但你明白了.我使用它作为模板,并使用一些有趣(ommited)枚举,一种方法来确定我正在使用什么样的形状

class RotatedRectangleF : public ShapeF
{
public:
    RotatedRectangleF();
    virtual ~RotatedRectangleF();
protected:
    float mWidth;
    float mHeight;
    float mRotation;
}
Run Code Online (Sandbox Code Playgroud)

ShapeF通过定位和定义类型的枚举来完成它的工作.它有访问器和mutator,但没有方法.

我可以将ShapeF设为抽象类,以确保没有人尝试并实例化ShapeF类型的对象吗?

通常,这可以通过在ShapeF中使用纯虚函数来实现

//ShapeF.h
virtual void Collides(const ShapeF& inShape) = 0;
Run Code Online (Sandbox Code Playgroud)

但是,我目前正处理一个单独的类中的冲突.我可以移动所有东西,但我想知道是否有一种方法可以使类抽象...没有纯虚函数.

c++ polymorphism abstract-class pure-virtual

15
推荐指数
2
解决办法
1万
查看次数