![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C++ this指针的问题 5
我的程序是这样的:#include<iostream>usingnamespacestd;classnum{public:num(){n=1;cout<<"构造函数执行\...
我的程序是这样的:
#include <iostream>
using namespace std;
class num
{
public :
num(){n=1;cout<<"构造函数执行\n";}
~num(){cout<<"析构函数执行\n";}
int get()const{return n;}
void set (int x){n=x;}
num operator++()
{
n=(n+1)*5;
cout<<"n:"<<&n<<endl;
cout<<"m:"<<&m<<endl;
cout<<"this:"<<this<<endl;
cout<<"this->n:"<<&this->n<<endl;
cout<<"this->m:"<<&this->m<<endl;
return *this;
}
private:
int n;
int m;
};
int main()
{
num i;
num x=++i;
cout<<"i:"<<i.get()<<endl;
return 0;
}
问:为什么改变private的 int n和 int m位置。输出地址会变呢?
为什么输出的结果中发现 n和m 的地址变化呢? 展开
#include <iostream>
using namespace std;
class num
{
public :
num(){n=1;cout<<"构造函数执行\n";}
~num(){cout<<"析构函数执行\n";}
int get()const{return n;}
void set (int x){n=x;}
num operator++()
{
n=(n+1)*5;
cout<<"n:"<<&n<<endl;
cout<<"m:"<<&m<<endl;
cout<<"this:"<<this<<endl;
cout<<"this->n:"<<&this->n<<endl;
cout<<"this->m:"<<&this->m<<endl;
return *this;
}
private:
int n;
int m;
};
int main()
{
num i;
num x=++i;
cout<<"i:"<<i.get()<<endl;
return 0;
}
问:为什么改变private的 int n和 int m位置。输出地址会变呢?
为什么输出的结果中发现 n和m 的地址变化呢? 展开
1个回答
2016-05-12 · 做真实的自己 用良心做教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
![](https://wyw-base.cdn.bcebos.com/pc-content/follow.gif)
展开全部
如果你想在类成员函数中显示调用类成员变量采用“this.成员变量”这种形式就行了,返回this指针:return this;
如:
ClassA setValue(int a) {
this.a = a;
return this;
如:
ClassA setValue(int a) {
this.a = a;
return this;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询