[问题] print value

楼主: a33667004 (A-story)   2016-01-26 21:08:37
想请问一下
Class A {
A(){print();}
virtual print(){cout << “in A”<<endl;}
};
Class B: public A{
B(){print();}
virtual print(){cout << “in B”<<endl;}
};
void main(void)
{
B b ;
}
像这样的问题 是会先印出B在印出A吗
也就是 inB inA
可是不太懂原理,想请教一下~谢谢
作者: Caesar08 (Caesar)   2016-01-26 21:20:00
作者: james1022jk (雁)   2016-01-27 00:15:00
这compiler会过吗.....
作者: ronin728 (浪人)   2016-01-27 01:18:00
题外话: 建构式要public才能用, 别再 void main了, 建构式最好 不要 呼叫virtual member。 正题: 继承的 class 建构式会先跑他的基础类别,inA 才 inB。
作者: LPH66 (-6.2598534e+18f)   2016-01-27 02:26:00
建构物件中不该呼叫 virtual, 不只是最好不要而已因为建构物件途中所有关于此物件的型别判定都是正建构中的物件本身, 不论正建构中的物件是在继承关系的哪里virtual 函式的问题只是这个判定的效应之一而已

Links booklink

Contact Us: admin [ a t ] ucptt.com