我正在尝试上这样的课
class IPclass {
void SendData();
io_service io_service_;
tcp::socket tcp_socket_{io_service_};
};
class UDSclass {
void SendData();
io_service io_service_;
local::stream_protocol::socket tcp_socket_{io_service_};
};
问题是,IPclass和UDSclass具有相同的例程,但成员变量相同,只是套接字类型不同。
我想创建一个名为SessionClass的类,而不是这两个类。
这些是我尝试过的选项以及失败的原因。
是否有针对此问题的建议或已知解决方案? 非常感谢。
答案 0 :(得分:5)
您可以使用模板化的类:
textarea
然后使用:
template <typename NetworkType>
class NetworkClass
{
NetworkType tcp_socket_{io_service_};
};
如果需要的还更多,则可以使用类型特征来定义更高级的行为,而无需动态多态。