我有一个套接字数据类型类,用于从套接字流中读取和解析一个值(也可以用于文件)。
让我的课是mc_double
:
class mc_double {
private:
double value;
public:
bool read(socket);
write(double);
}
实际的类比较复杂,但这是原理。现在,我需要float
从流中解析。Float 与 double 类似,因此已经实现int
。我不能将这个类定义与 all和double
以某种方式模板化吗?int
float
这就是我的意思:
class mc_<typename = double or int or float> {
private:
typename value;
public:
bool read(socket);
write(typename);
}
然后将单独定义某些方法,因为mc_double::method()
其他方法对于所有类型都是相同的:mc_typename::general_method()
. 此外,对于某些人来说,我只需要对代码进行微小的更改:
typename mc_typename::return_value() {
return val;
}
或构造函数:
mc_typename::mc_typename(<int, long, char, double> number) {
val = (typename)number;
}
结果应该是三个类-mc_int
和。
我找到了官方的 C++ 模板文档,但我只弄清楚了问题的最后一部分——我可以创建一个接受多种数据类型的函数。其余的似乎并不那么容易。mc_float
mc_double