1

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

例如:文件: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++ 初学者。

4

2 回答 2

3

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

于 2012-11-06T18:24:59.227 回答
1

方法1是正确的。

方法 2 似乎在与您进行调用的实例不同的实例上调用该方法,这是一种不同的行为。在某些情况下,这是您想要的,但您没有表明这是这种情况。

您对第一种方法有疑问吗?

于 2012-11-06T18:23:48.573 回答