如果派生类以public方式继承基类,则原基类的protected成员和public成员在派生类中的访问类型分别是()。
A. public和 public
B. public和protected
C. protected 和 public
D. protected 和 protected
有如下程序:class Base {public:int data;};class Derivedl:: public Base{};class Derived2:: protected Base {};int main(){Derived1 d1;Derived2 d2;dl.data=0; //①d2.data=0; //②return 0;}下列关于程序编译结果的叙述中,正确的是()。
A. ①②皆有编译错误
B. ①②皆无编译错误
C. ①无编译错误,②有编译错误
D. ①有编译错误,②无编译错误
有如下程序:#include using namespace std;class AA{int k;protected:int n;void setK(int k){ this->k=k;}public:void setN(int n){ this->n=n;}};class BB: public AA{/*类体略*/};int main(){BB x;x.n=1; // ①x.setN(2); // ②x.k=3;// ③x.setK(4); // ④return 0;}在标注号码的四条语句中正确的是()。
A. ①
B. ②
C. ③
D. ④
下列关于派生类构造函数和析构函数的表述中,错误的是()。
A. 在销毁派生类对象时,派生类的析构函数将首先调用基类的析构函数
B. 如果基类中没有默认构造函数,那么派生类必须定义构造函数
C. 派生类的构造函数在必要时会隐含调用基类的默认构造函数
D. 在建立派生类对象时,派生类的构造函数将首先调用基类的构造函数