有关析构函数的叙述,正确的是_______
A. 可以重载可以定义为虚函数 B. 不可以重载可以定义为虚函数
C. 可以重载不可以定义为虚函数 D. 不可以重载不可以定义为虚函数
阅读下面的程序,分析访问属性。
class A{ public: void f1( ); int a1; protected: void f2( ); int a2; private: int a3; }; class B:public A{ public; void f3( ); protected: int b1; private: int b2; }; class C:public B { public: void f4( ); private: int c1; }; int main( ) {A a; B b; C c; return 0;}
回答下列问题,并简要说明理由。
(1)在main函数中能否用b.a1,b.a2,b.a3引用派生类B对象b中基类A的成员?
(2)派生类B中的成员函数能否调用基类A中的成员函数f1和f2?
(3)派生类B中的成员函数能否引用基类A中的数据成员a1,a2,a3?
(4)能否在main函数中用c.a1,c.a2,c.a3,c.b1,c.b2,c.c1引用基类A的成员a1,a2,a3,派生类B的成员b1,b2,以及派生类C的成员c1?
(5)能否在main函数中用c.f1(),c.f2(),c.f3()和c.f4()调用f1,f2,f3,f4成员函数?
(6)派生类C的成员函数f4能否调用基类A中的成员函数f1,f2和派生类B中的成员函数f3?
图1
A、Processor B、Use run-time library
C、Calling convention D、Struct member alignment