我需要一种强制调用成员函数的常量版本的方法。我试图让它尽可能高效。有什么好的解决方案吗?
编辑:寻找通用功能
答案 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传递。