相关疑难解决方法(0)

如何在const函数中调用非const函数(C++)

我有一个看起来像这样的遗留函数:

int Random() const
{
  return var_ ? 4 : 0;
}
Run Code Online (Sandbox Code Playgroud)

我需要在遗留代码中调用一个函数,以便它现在看起来像这样:

int Random() const
{
  return var_ ? newCall(4) : 0;
}
Run Code Online (Sandbox Code Playgroud)

问题是我收到了这个错误:

In member function 'virtual int Random() const':
class.cc:145: error: passing 'const int' as 'this' argument of 'int newCall(int)' discards qualifiers
Run Code Online (Sandbox Code Playgroud)

现在我知道为了解决这个错误我可以使我newCall()的const函数.但后来我有几个newCall()函数调用,所以现在我必须使所有这些函数调用const.等等,直到最后我觉得我的程序的一半将是const.

我的问题:有没有办法在Random()中调用一个不是const的函数?或者有没有任何想法如何实现newCall()内部Random()而不使我的程序const的一半.

谢谢

-josh

c++ const function const-correctness const-cast

20
推荐指数
3
解决办法
3万
查看次数

标签 统计

c++ ×1

const ×1

const-cast ×1

const-correctness ×1

function ×1