单选题
有如下程序: class Base{ public: int data; }; class Derivedl:public Base{}; class Derived2:protected Base{}; int main() { Derivedl d1; Derived2 d2; d1.data=0;///① d2.data=0;//② return 0; } 下列关于程序编译结果的描述中,正确的是( )。
【正确答案】
C
【答案解析】解析:本题考查公用继承和保护继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有。本题中Derivedl公用继承Base,所以①编译正确,Derived2保护继承Base,所以②编译不正确。