类成员函数如何调用成员函数?

类成员函数如何调用成员函数?,第1张

因为静态函数不属于成员,也就是说静态函数调用的时候不知道是哪个成员调用的这个函数。

但是成员函数必须知道是哪个成员调用的。

说的简单点是 成员函数带有this指针 而静态函数没有this指针。

#include <iostream>

using namespace std;

class Fun

{

public:

Fun(){x=0,y=0;}

Fun(int a,float b);

void display(Fun &fun);// 当前类对象的引用

private:

int x;

float y;

};

Fun::Fun(int a,float b)

{

x=a;

y=b;

}

void Fun::display(Fun &fun)// 输出引用类对象的数据成员

{

cout<<"x="<<funx<<"\ny="<<funy<<endl;

}

int main()

{

Fun fun1;// 定义对象fun1使用默认构造函数初始化

Fun fun2(8,15);// 定义对象fun2使用有参构造函数初始化

fun1display(fun2);// 调用对象fun1的成员函数输出对象fun2的数据成员x,y

fun2display(fun1);// 调用对象fun2的成员函数输出对象fun1的数据成员x,y

return 0;

}

是这个意思吗?

这个要分具体情况说,假设是类A的函数A1调用类B的成员函数B1

1假如是A1的参数里有类B的实例,直接引用就可以了

2假如是A1里只是需要B1的这个功能,并且参数里没有类B的实例,只有把B1设成静态函数或者把B设成A的成员变量(由于空间开销,可以把B设为静态的)

在c++中同一个类的成员函数之间是可以嵌套调用的,但是有些特例,细节如下:

1

c++同一个类的非静态成员函数可以直接嵌套调用;

2

c++同一个类的静态成员函数之间可以直接嵌套调用;

3

c++的非静态成员函数可以直接嵌套调用静态成员函数;

4

c++的静态成员函数不可以直接嵌套调用非静态成员函数。

C++中调用类的私有成员函数的方法就是,在该类中再声明定义一个公有成员函数

在其函数内部调用自己的私有成员函数,向外使用的话,在别的类中包含该类的头文件,就可以通过公有函数隐式的访问私有成员函数;

class A

{

private:

int a;

public:

int GetA()

{

return a;

}

}

类内写一个public的方法,访问该私有成员即可。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12176326.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存