c++ 结构体中的成员函数怎么办

结构体中的成员函数在成员函数的参数中不能看this的地址它说【表达式必须为左值或函数指示符】应该怎么才能看this的地址 不明白解释以下
比如说:
#include
using namespace std;
struct MyStruct
{
int h;
int i;
void hun()
{
cout << h + i;
}
};
int main() {
MyStruct ki;
ki.h = 10;
ki.i = 100;
ki.hun();

}
不能查看this的地址

1个回答

可以查看this指针指向的地址,以及成员变量的地址
但是由于C++中类中的变量和函数时分开存储的,函数存储在代码区中
至于this这个指针的地址,因为this指针是编译器给自动加上的,查看他的地址有什么意义吗?

 #include<iostream>
using namespace std;

struct MyStruct
{
    int h;
    int i;
    void hun()
    {
        cout << this << endl;
        cout << &(this->h) << endl;
        cout << &(this->i) << endl;

        cout << h + i << endl;;
    }
};
int main()
{

    MyStruct ki;
    ki.h = 10;
    ki.i = 100;
    ki.hun();

    system("pause");
    return EXIT_SUCCESS;
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐