C++类 - 派生类中的构造函数声明

1 c++ constructor class derived

Socket有一个构造函数,它将winsock SOCKET作为参数并将其存储在一个私有变量中:

Socket::Socket(SOCKET s) {
    this->s = s;
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个类"GameSocket"来解析我的Socket类中的数据:

class GameSocket : public Socket {

protected:

    void ParseData(unsigned char* data, int size);

};
Run Code Online (Sandbox Code Playgroud)

在这些类的旁边,我有一个"Server"类,可以在需要时创建新的套接字:

GameSocket* Server::Accept() {

    SOCKET a = accept(s, 0, 0);
    if(a==SOCKET_ERROR) {
        return 0;
    }
    else {
        return new GameSocket(a);
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,这给了我最后一个"其他"的错误:

error C2664: 'GameSocket::GameSocket' : cannot convert parameter 1 from 'SOCKET' to 'const GameSocket &'
Run Code Online (Sandbox Code Playgroud)

在处理派生类时,我必须遗漏构造函数...

不要对我太过刻意,我对C++和OOP比较陌生

Dav*_*nch 6

添加GameSocket的构造函数

class GameSocket : public Socket {

public:

    // you need to add
    GameSocket(SOCKET s) : Socket(s) {}

protected:

    void ParseData(unsigned char* data, int size);

};
Run Code Online (Sandbox Code Playgroud)