Getters And Setters C ++

时间:2016-04-21 23:58:26

标签: c++ getter-setter

好的伙计我的问题在这里很简单..我想为不同的值类型构建一个getter和setter ..基本上是函数重载但是有getter和setter ..我试过这样的

{{1}}

但显然它说不能进行函数重载,唯一的不同类型是返回类型..

4 个答案:

答案 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);

http://www.tutorialspoint.com/cplusplus/cpp_overloading.htm

答案 3 :(得分:0)

您拥有的另一个选择是不将结果作为返回值返回。代替:

...
void getX( float& result) const {
    result = static_cast<float>(x);
}
void getX( int& result) const {
    result = x;
}
...

只需添加选项列表,不要说这是最佳解决方案。