preFly

人要有所担当,
更要有所取舍!
Problem unsolved

下段代码的输出结果是?

#include "stdafx.h"
#include <iostream>
#include <iomanip>

using namespace std;

class A
{
public:
    int _a;
    A()
    {
        _a=1;
    }
    void print()
    {
        cout<<_a<<endl;
    }
};
class B:public A
{
public:
    int _a;
    B()
    {
        _a=2;
    }
};

int _tmain(int argc, _TCHAR* argv[])
{
    B b;
    b.print();
    cout<<b._a<<endl;
}

运行结果:
1
2
 
救命啊~~真的不能理解啊~~到底为啥呢~~B的_a没有把A的_a覆盖掉吗?
为什么既有1又有2?
先在此做个记号~~

posted on 2010-10-08 21:47  preFly  阅读(194)  评论(0编辑  收藏  举报