Chinaunix首页 | 论坛 | 博客
  • 博客访问: 578364
  • 博文数量: 752
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(752)

文章存档

2011年(1)

2008年(751)

我的朋友

分类:

2008-10-13 16:51:23

导航

2008年10月
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

随笔分类

随笔档案

文章档案

相册

class A
{
    int k;
    void f(){     cout << this << &k;    }
};
main()
{
    A a;    a.f();
}
输出结果:this 和 k 的地址是一样的
结论:this 其实就是对象数据区的首地址

posted on 2004-06-18 16:04 杨老师的茅屋 阅读(1523)   
 杨老师,你错了

Posted @ 2004-06-19 09:37
杨老师,你错了,你的结论太轻率了,到坛子里去开个30分的帖子,我告诉你怎么错了,呵呵
  •  re: 什么是 this

    Posted @ 2004-06-21 03:26
    至少我用的编译器都是这么实现的,以保持与C的兼容性。
    struct A
    {
    int k;
    }
  •  re: 什么是 this

    Posted @ 2004-07-03 13:48
    在比较复杂的,有虚函数、虚基类的类层次结构中,某个结点的"this"远比这复杂了。

    最简单的例子:写一个带虚函数的钻石型继承,然后debug看一下每隔类的存储结构,看一下vtbl, vbasetbl, typeinfo都是怎么实现的。
  •  这个就不一样啊

    Posted @ 2004-08-10 22:22

    class A
    {
    int k;
    void f(){ cout << this << &k; }
    virtual v() {}
    };
    main()
    {
    A a; a.f();
    }
  •  re: 什么是 this

    Posted @ 2004-08-19 03:13
    error C2248: 'f' : cannot access private member declared in class 'A'
    E:\gey\vc\this.cpp(6) : see declaration of 'f'
  •  re: 什么是 this

    Posted @ 2006-02-24 18:36
    我也感觉这个结论的切草率,最基本的也要考虑vptr的存在
  •  re: 什么是 this

    Posted @ 2006-04-14 10:21
    最基本的也要考虑vptr的存在!
    还有继承等。。。。
  • 标题  
    姓名  
    主页
    验证码 *
    内容   
          
    [使用Ctrl+Enter键可以直接提交]

    统计

    • 随笔 - 44
    • 文章 - 0
    • 评论 - 291
    • 引用 - 0

    --------------------next---------------------

    阅读(417) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~