0
点赞
收藏
分享

微信扫一扫

IP Fabric&三层路由

左手梦圆 2024-07-29 阅读 28

成员函数中可以直接存取其他成员,例如以下的do_something()ab为两个资料成员

int do_something() {
    return a + b;
}

这种写法指是种简便的方式,其实编译器会自动填入this 指标(pointer) ,如下

int do_something() {
    return this->a + this->b;
}

this指标用来存取类别中的成员,明确使用this指标也不必担心成员函数的参数名称是否与变数成员相同,举例如下

#include <iostream>
  
class Demo {
public:
    Demo(int a, int b) {
        this->a = a;
        this->b = b;
    }
    
    int do_something() {
        return this->a + this->b;
    }
    
private:
    int a;
    int b;
};

int main() {
    Demo d(22, 60);
    std::cout << d.do_something() << std::endl;
    
    return 0;
}

建构函数 Demo()的参数a与b与资料成员a与b有相同的名称,因为明确使用this指标,所以可以区分哪个a与b是参数,另一个a与b则是资料成员

Demo(int a, int b) {
    this->a = a;
    this->b = b;
}

编译执行,结果如下

$ g++ u0907.cpp
$./a.out 复制代码
82
$
举报

相关推荐

0 条评论