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;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)