Welcome
admin
admin

2025-06-23 20:27:01

世界杯误判
3249 292

本篇为博主在学习中遇到的问题,仅以此记录并供以后复习使用,同时希望能够帮助到有类似问题的同学。

一、同一个对象的类成员函数相互调用

如图所示,类成员函数fun2直接调用类成员函数fun,最终如果对象调用fun2则会输出fun1,证明能够如此调用。

二、参数是另一个对象的类成员函数,调用参数中对象的成员函数

1、首先第一种情况,如果是const 引用的情况

可以看到无法成功调用,报错信息指出将const 转化为&,权限扩大,因此无法调用,如果仍想这样调用,则需要对程序稍作修改。

具体修改方法有两种:

1、

class test {

public:

void fun() {

cout << '1' << endl;

}

void fun2(test& ano) {

ano.fun();

}

};

将const删除,这样就不会有权限扩大的问题

2、

class test {

public:

void fun() const {

cout << '1' << endl;

}

void fun2(const test& ano) {

ano.fun();

}

};

在被使用到的成员函数后面加const变为只读函数,而不改变类内成员的值,这样,也不会有权限扩大的问题,但是仅仅只有带const的只读函数能够被调用。