同一个类中成员函数如何调用另一个成员函数?

类声明:
class Base
{
public:
void fun(int n);

void fun(char c);

}

类定义:
Base::fun(int n)
{
//do staff;

}
Base::fun(char c)
{
int n = (int)c;
Base::fun(n);

}

如上面所示,源代码不是这个,只是简单地表达我的意思。源代码中也是重载函数之间的调用。我用类名::成员函数名或者this->fun(n),编译器都报错,“unable to match function definition to an existing declaration”,找不到这个函数的定义。同一个类应该如何调用?
前面网友提醒,定义时要加返回类型,源代码中有,问题仍存在。
类定义:
void Base::fun(int n)
{
//do staff;
}
void Base::fun(char c)
{
int n = (int)c;
Base::fun(n);
}

在类外定义函数,也要加上返回值类型的,上面的没有加,所以相当于没有定义,只有声明。还有类定义后面要加分号。

#include <iostream>
using namespace std;

class Base
{
public:
    void fun(int n);
    void fun(char c);
};

void Base::fun(int n)
{
cout << n << endl;
}

void Base::fun(char c)
{
    int n = (int)c;
    fun(n); // 可以直接调用
    this->fun(n); // 或者加上this
}

int main()
{
Base b;
b.fun('A');
return 0;
}

追问

恩,写问题的时候疏忽了,源代码中有加,还是会出现无法调用的问题

追答

刚才补充了一下,你复制上面的程序试试看能不能运行。

追问

恩,试了可以,应该是我其他地方的问题,我再查查

温馨提示:答案为网友推荐,仅供参考
相似回答