在結構體中添加成員函數/C++


我們在使用C語言的結構體時,經常都是只定義幾個成員變量,而學過面向對象的人應該知道,我們定義類時,不只是定義了成員變量,還定義了成員方法,而類的結構和結構體非常的相似,所以,為什么不想想如何在C語言結構體中添加成員變量呢

  在C語言的結構體中是不能直接定義成員函數的,這點和C++不同,但是我們可以通過定義一個函數指針的方式來指向一個方法。

  示例代碼如下:

#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
    int a;
    void(*p)(int b);
}no;

void fun(int b)
{
    printf("hello,%d\n",b);
}

int main()
{
    no a = { 1,fun };

    a.p(a.a);
    system("pause");
    return 0;
}

  這段代碼運行出來,控制台會打印出hello,1.這就表面明了,我們成功的調用了函數,並且成功的傳遞了參數進去。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM