在C++中定义在类中声明的struct的构造函数

Abd*_*mad 1 c++

如何为结构声明构造函数?我的结构是在类的私有部分声明的,我想为它声明我的构造函数.

以下是我的代码

class Datastructure {

private:

        struct Ship
        {
            std::string s_class;
            std::string name;
            unsigned int length;

        } minShip, maxShip; 

        std::vector<Ship> shipVector;
public:

    Datastructure();
    ~Datastructure();
};
Run Code Online (Sandbox Code Playgroud)

这是我的头文件; 如何为我的struct Ship声明构造函数以及在哪里可以在.h文件或cpp文件中实现该构造函数?

Ste*_*end 6

在头文件中声明的构造方法

struct Ship
{
    Ship();
    std::string s_class;
    std::string name;
    unsigned int length;

    } minShip, maxShip; 
Run Code Online (Sandbox Code Playgroud)

并在代码中实现:

DataStructure::Ship::Ship()
{
  // build the ship here
}
Run Code Online (Sandbox Code Playgroud)

或更有可能:

DataStructure::Ship::Ship(const string& shipClass, const string& name, 
                          const unsigned int len) :
s_class(shipClass), name(_name), length(len)
{
}
Run Code Online (Sandbox Code Playgroud)

在标题中有这个:

    struct Ship
    {
private:
        Ship();
public:
        Ship(const string& shipClass, const string& name, unsigned len);
        std::string s_class;
        std::string name;
        unsigned int length;

        } minShip, maxShip; 
Run Code Online (Sandbox Code Playgroud)