打印

this指针问题

[复制链接]
992|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxgclg|  楼主 | 2012-5-25 23:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我列出了下面的测试代码:
class Father
{
public:
     
virtual
void  show()
    {
        cout
<<"Father show()"<<endl;
        cout
<<typeid(*this).name();
    }
};
class Son :  public Father
{
public:
   
void show()

    {
        cout
<<"Son show()"<<endl;
        cout
<<typeid(*this).name();
    }                  
};

int main(int argc,char argv[])
{                                                            typeid(
*this).name() 结果:
   
//Father中的show()不是虚函数

   
//    Son s;
   
//    s.Father::show();                       //  father
     
   
//Son s;
   
//s.show();                                               //Son

   
//Father *p=new Father  ;
   
//    p->show();                                             //father

   
//Father *p=new Son;         
   
//p->show();                                   //father


   
//Father *p=new Son;         
   
//p->Father::show();                                    //father


   
//修改Father中的show()为虚函数

   
//Son s;
   
//s.Father::show();                                 //son

   
//Son s;
   
//s.show();                                     //son

   
//Father *p=new Father  ;
   
//p->show();                                //father

   
//Father *p=new Son ;
   
//p->show();                                                     //Son

   
   
//Father *p=new Son;         
   
//p->Father::show();                                     //Son




我表示我没有看懂! 本来我理解的是 this指向的是实际指向的对象,
比如 : Father *p=new Son;
p->Father::show();
this 指向的就是Son 结果 输出的是:father!


我对比了上面的输出结果,发现在 virtual 和 非virtual的输出结果不一样!

比如:

Father *p=new Son;
p->Father::show();
在show()非 virtual 下 输出是 father

在 virtual 下是 Son!




实在不明白,请解释一下!

看了其他帖子 说的是 指向的 : 指向对象本身! 这个对象本身是什么?

相关帖子

沙发
dfsa| | 2012-5-25 23:16 | 只看该作者
有个东西叫静态类型,还有个东西叫动态类型.
typeid 求的是表达式的静态类型.
所以,,,看书吧..

使用特权

评论回复
板凳
baidudz| | 2012-5-25 23:21 | 只看该作者
在C++这个语言方面, 个人认为只需要掌握正确的作法, 不需要理解错误的作法, 否则你就得去语言底层挖掘一下了。

使用特权

评论回复
地板
pkat| | 2012-5-26 23:39 | 只看该作者
找本C++的书看看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝