2013年(34)
分类: C/C++
2013-02-20 14:38:51
运行结果如下:
为什么是这样的结果呢?我们首先要知道:this指针指向的是一个类的对象,而且指向的是当前实例化的对象。我们先看看main()函数中,我们总共构造了两个对象,一个是基类的对象base_variable,一个是派生类的对象derive_variable。我们再看看基类中的构造函数base()什么时候会被调用呢?很明显,构造一个基类对象和构造一个派生类对象时都会调用。
在我们构造基类对象base_variable时,this指针指向这个对象,所以pointer也会指向这个对象,所以调用的output()函数是基类中的output()函数。而我们构造派生类对象derive_variable时,this指针指向这个对象,所以调用的output()函数是派生类中的output()函数。