在同一类的其他成员函数的定义内调用类成员函数

时间:2012-11-06 18:21:26

标签: c++

在同一个类的另一个成员函数的定义中调用类的成员函数的方法是什么?

对于Ex: 文件: header.h

class A
{
public:
void fn1();
void fn2();
};

现在在cpp文件中: function.cpp

方法1:

#include"header.h"
void A::fn1()
{
//function body for fn1()

//What is the way to make a call for fn2()?
//assume I have definition of fn2() above similar to fn1()

fn2();
} 

方法2:

#include"header.h"
A obj_A;
void A::fn1()
{
//function body for fn1()

//What is the way to make a call for fn2()?
//assume I have definition of fn2() above similar to fn1()

obj_A.fn2();
} 

请说明哪种方法正确?

谢谢, C ++中的初学者。

2 个答案:

答案 0 :(得分:3)

两个版本都是正确的,但表现不同。第一个版本将在同一实例上调用该函数f1被调用,而第二个版本将始终在obj_A实例上调用f2。

答案 1 :(得分:1)

方法1是正确的。

方法2似乎是在与您进行调用的实例不同的实例上调用该方法,这是一种不同的行为。可能会出现这种情况,但您没有表明情况就是这样。

您是否遇到第一种方法的问题?