强制调用常量版本成员函数

时间:2012-04-01 03:59:06

标签: c++ generics const

我需要一种强制调用成员函数的常量版本的方法。我试图让它尽可能高效。有什么好的解决方案吗?

编辑:寻找通用功能

2 个答案:

答案 0 :(得分:1)

引用const类型或指向const类型的指针。

你可以用一种奇特的方式做到这一点,但在一天结束时,这是唯一的方法。

虽然我真的不知道这是什么目的。似乎不值得努力。

另外,我不太清楚我理解泛型函数的含义。这需要一些澄清,但是如果我理解正确,你想要一个指针/值/引用并将它传递给一个函数并让它神奇地调用一个const方法?只有在使用多态或至少使用相同名称(模板)的方法时,这才有效。

答案 1 :(得分:0)

它会根据传递的参数自动调用const或非const版本。您只能从const转换为非const。这可能看起来很愚蠢,但这是世界的方式。

例如,您通常可以这样做:

void function(char foo);
void function(int foo);

function(4);

编译器将“决定你”调用哪一个,你可以通过

来明确它
int x;
function((int)x);
function((char)x);

但是没有明确传递重载const版本的等价物。

当然,您只需只定义一个const版本,参数将只是作为const传递。