C++中的Abstract/Base结构?

Aus*_*ore 5 c++ struct abstract-class structure class

我正在制作国际象棋游戏,我希望有一系列作品.

如果我是对的,在Java中你可以拥有一个抽象Piece类并拥有KingQueen扩展该类.如果我做的阵列Piece的I可以放置一个King数组中的一块地方和Queen在另一个地方,因为这两个部分KingQueen延伸Piece.

有没有办法用C++中的结构做到这一点?

use*_*321 6

是.您可以使用C++ 创建抽象基类.只需将一个或多个方法设置为纯虚拟:

class Piece {
    public:
        Piece ();
        virtual ~Piece ();
        virtual void SomeMethod () = 0;  // This method is not implemented in the base class, making it a pure virtual method. Subclasses must implement it
 };
Run Code Online (Sandbox Code Playgroud)

然后,您可以创建实现纯虚方法的子类

class King : public Piece {
    // ... the rest of the class definition
    virtual void SomeMethod (); // You need to actually implement this
};
Run Code Online (Sandbox Code Playgroud)