C++_练习—函数指针与函数重载

函数指针与函数重载


 

成员函数与普通函数区别:

定义一个对象时,系统只为数据成员分配空间。那么对于类的成员函数而言,它如何知道函数中提到的数据成员是哪个对象的数据成员呢?……实际上,C++为每个成员函数设置了一个隐藏的指向本类型的指针形参this,它指向当前调用成员函数的对象。成员函数中对对象成员的访问时通过this指针实现的。……因此,当通过对象调用成员函数时,编译器会把相应对象的地址传给形参this。

复制代码
 1 /*重点:如果成员函数没有static,无法使用成员函数,因为存在this指针
 2         由于静态成员函数没有this指针,使用可以使用函数指针!!!
 3 */
 4 
 5 
 6 #include<iostream>
 7 
 8 using namespace std;
 9 
10 class info {
11 public:
12     static void fun(int a);
13     static void fun(int a ,int b);
14     static void fun(int a, int b, int c);
15 private:
16     int age;
17 };
18 
19 
20 void info::fun(int a) {
21     cout << a << endl;
22 }
23 
24 void info::fun(int a, int b) {
25     cout << a << b << endl;
26 }
27 
28 void info::fun(int a, int b, int c) {
29     cout << a << b << c << endl;
30 }
31 
32 typedef void (pun)(int a, int b);
33 
34 /*    函数指针定义三方法:
35     typedef void (pun)(int a, int b);
36     typedef void (*pun)(int a,int b);
37     void(*pun)(int a,int b);
38 */
39 
40 
41 int main(void)
42 {
43 
44     info info1;
45 
46     pun * la = info1.fun;    
47 
48     la(3,4);
49 
50     system("pause");
51 
52     return 0;
53 }
复制代码

 

 


 

posted @   panda_w  阅读(493)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示