kbhao7788 2016-11-03 02:35 采纳率: 0%
浏览 1000

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条回答

  • 张传旭 2016-11-03 03:13
    关注

    可以查看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;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!