好的伙计我的问题在这里很简单..我想为不同的值类型构建一个getter和setter ..基本上是函数重载但是有getter和setter ..我试过这样的
{{1}}
但显然它说不能进行函数重载,唯一的不同类型是返回类型..
答案 0 :(得分:4)
当然,您没有使用足够的模板。模板解决了C ++中的问题。使用它们。爱模板。
271 def _close(self):
272 self._terminate(0.05) # Short timeout
273 self._close_streams()
274 self._proc = None
答案 1 :(得分:3)
如果不改变我所知道的参数,就无法重载函数。您需要在调用函数之后更改函数名称(称之为getXFloat()或其他内容)或者只是更改函数:
float the_x_value = static_cast<float>(vec.getX());
我会选择第二种选择。
答案 2 :(得分:2)
您不能根据返回类型重载方法。
您可以在其输入参数上重载函数。
例如:
void fun1(int a,char b);
void fun1(float a,char b);
void fun1(float a,int a,char b);
答案 3 :(得分:0)
您拥有的另一个选择是不将结果作为返回值返回。代替:
...
void getX( float& result) const {
result = static_cast<float>(x);
}
void getX( int& result) const {
result = x;
}
...
只需添加选项列表,不要说这是最佳解决方案。