数据成员绑定

来源:互联网 发布:windows 10 无法开机 编辑:程序博客网 时间:2024/05/16 12:51
int x=0;class Foo{public:    Foo(){x=0;}    void X(int val){x=val;}    int X(){return x;}private:        int x;};int main(){    Foo b;    b.X(3);    cout<<x<<endl;    cout<<b.X();}

上述代码输出结果为0 3。这说明设置和返回的是类的数据成员而不是全局变量。这是因为函数体内的分析直到整个class声明都出现了才开始。
再看下面的代码

typedef int length;class Foo{public:    void X(length val){x=val;}    length X(){return x;}private:    typedef float length;    length x;};int main(){    Foo b;    b.X(3.4);    cout<<b.X();   }

输出结果为3。这是因为对于成员函数的参数列表而言,上述规则不存在。因此建议将内嵌别名放在类的起始处。

原创粉丝点击