用函数指针和指针引用类中的成员和变量

class Y
{
public:
    int x;
    static int x_s;
    static void Def_S()
    {
        cout<<"OK"<<endl;
    }
    void Def()
    {
        cout<<"KO"<<endl;
    }
};

int Y::x_s = 10;
int main()
{
    //静态函数引用
    void (*ptr)() = & Y::Def_S;
    ptr();

    //非静态函数引用
    Y y;
    void (Y::*ptr_s)() = &Y::Def;
    (y.*ptr_s)();

    //静态变量引用
    cout<<"静态变量引用前 Y::x_s:" << Y::x_s <<endl;
    int *p_s = &Y::x_s;
    *p_s = 20;
    cout<<"静态变量引用后 Y::x_s:" << Y::x_s <<endl;

    //非静态变量引用
    y.x = 30;
    cout<<"非静态变量引用前 Y::x_s:" << y.x <<endl;
    int Y::*p = &Y::x;
    y.*p = 40;
    cout<<"非静态变量引用后 Y::x_s:" << y.x <<endl;

    return -1;
}

结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值