C ++类 - 如何从另一个成员函数引用成员函数

时间:2011-04-08 01:24:57

标签: c++ oop class member-functions

我对c ++课程很陌生,所以这可能是一个非常明显的问题,但因为我对术语不熟悉,但我似乎无法获得正确的搜索词。

无论如何,我要做的是在类中使用公共函数访问同一类中的私有函数。

例如

//.h file:

class foo {

float useful(float, float);

public:

int bar(float);

};

//.cpp file:

int foo::useful(float a, float b){
//does something and returns an int
}

int foo::bar(float a){
//how do I access the 'useful' function in foo?? eg something like
return useful(a, 0.8); //but this doesnt compile
}

3 个答案:

答案 0 :(得分:2)

声明函数useful返回float,但您将其定义为返回int

对比度

float useful(float, float);

VS

int foo::useful(float a, float b){
    //does something and returns an int
}

如果您将声明更改为int useful(float, float)并从函数返回一些内容,它将正常工作。

答案 1 :(得分:1)

您的退货类型不匹配:

//.h file:

class foo {

float useful(float, float);      // <--- THIS ONE IS FLOAT ....

public:

int bar(float);

};

//.cpp file:

int foo::useful(float a, float b){       // <-- ...THIS ONE IS INT. WHICH ONE?
//does something and returns an int
}

int foo::bar(float a){
//how do I access the 'useful' function in foo?? eg something like
return useful(a, 0.8); //but this doesnt compile
}

编译器查找完全匹配的函数定义。你得到的编译器错误可能是抱怨a)无法找到float useful(),或b)在你谈论int useful时不知道你的意思。< / p>

确保这些匹配,并且在useful内调用bar应该可以正常工作。

答案 2 :(得分:0)

由于您尚未发布编译器提供给您的错误消息,我将猜测。 {。1}}的返回类型在.h和.cpp文件中不匹配。如果你使它们匹配(int或者两者都是浮点数),一切都应该按预期工作。