
C++ 函数类的成员函数如何调用其他成员函数?
在 C++ 函数类中,成员函数可以通过使用指针和 this 关键字调用其他成员函数。
使用指针:
使用指针的方法需要显式声明函数指针并初始化,如下所示:
class MyClass {
private:
void privateFunction();
void publicFunction();
public:
// 声明一个指向 privateFunction 的函数指针
typedef void (MyClass::*PrivateFunctionPtr)();
// 初始化指向 privateFunction 的函数指针
PrivateFunctionPtr pf = &MyClass::privateFunction;
// 一个需要调用 privateFunction 的公共函数
void publicFunction() {
// 通过函数指针调用 privateFunction
(this->*pf)();
}
}; 使用 this 关键字:
使用 this 关键字是一种更简单的调用其他成员函数的方法,它直接使用对象本身的指针。this 指针始终指向当前对象,可以使用 this-> 符号访问成员函数,如下所示:
class MyClass {
private:
void privateFunction() {
std::cout << "Calling private function" << std::endl;
}
public:
void publicFunction() {
// 直接使用 this-> 符号调用 privateFunction
this->privateFunction();
}
}; 实战案例:
以下是一个使用 this 关键字调用成员函数的实战案例:
class Student {
private:
int roll_no;
std::string name;
public:
// 设置卷号和姓名
void set(int roll_no, std::string name) {
this->roll_no = roll_no;
this->name = name;
}
// 获取卷号和姓名
void get() {
std::cout << "Roll No: " << roll_no << std::endl;
std::cout << "Name: " << name << std::endl;
}
};
int main() {
Student s1;
s1.set(1, "John");
s1.get();
return 0;
} 在这个案例中,set 函数使用 this 关键字设置对象的私有数据成员 roll_no 和 name。get 函数使用 this 关键字获取私有数据成员并打印它们。
以上就是C++ 函数类的成员函数如何调用其他成员函数?的详细内容,更多请关注知识资源分享宝库其它相关文章!







发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。