单选题 有如下程序: #include using namespace std; class XX { protected: int k= public: XX(int n=5):k(n){}; ~XX() {cout<<“XX”;} virtual void foconst=0; }; inline void XX::f()const {cout<
【正确答案】 A
【答案解析】解析:类YY公有派生于类XX,派生类对象可以替代基类对象向基类对象的引用进行赋值初始化,XX&p=*new YY语句定义了XX对象p引用,并用YY对象初始化,p并不是YY对象的别名,是XX基类对象的别名,故先调用基类XX的构造函数将k初始化为5,p.f()首先输出k一3即2,然后调用XX":f()输出k+3即8,delete&p删除p,调用XX的析构函数输出“XX”。