我见过一些人创建了一种“is-a”关系,如下所示:
class TCPClient : public Socket
{
public:
TCPClient(const std::string& host, unsigned short port);
};
其中 Socket 类实现了 Winsock 函数,例如 Connect()、Close()、Bind() 等。
例子:
但这对我是套接字编程的新手来说并不自然。
上面的层次结构是否比下面的“有”对应物更合乎逻辑?
class TCPClient
{
public:
TCPClient(const std::string& host, unsigned short port);
....
private:
Socket m_socket;
};