简述作用域public,protected,private,以及不写时的区别。

题目
问答题
简述作用域public,protected,private,以及不写时的区别。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下两个类定义: class XX{ private: double X1; protected: double x2; public: doublex3; ); clase YY:protected XX{ private: doubley1; protected: doubley2; public: double y3; }; 在类YY中保护成员变量的个数是( )。

A.1

B.2

C.3

D.4


正确答案:C
解析:派生类从基类保护继承(classYY:protectedXX)时,基类的公有成员在派生类中变为保护成员,基类的保护成员在派生类中仍然是保护成员;本题中YY本身有一个保护成员y2,再加上基类XX的x2和x3,故选C。

第2题:

下列描述中,表达错误的是( )。

A.公有继承时基类中的public成员在派生类中仍是public的

B.公有继承时基类中的private成员在派生类中仍是private的

C.公有继承时基类中的protected成员在派生类中仍是protected的

D.私有继承时基类中的public成员在派生类中是private的


正确答案:B
解析:C++中,继承方式控制了基类中具有不同访问属性的成员在派生类中的访问属性。基类中的私有成员在派生类中是隐蔽的,只能在基类内部访问。所以选项B是错误的。派生类中的成员不能访问基类中的私有成员,但可以访问基类中的公有成员和保护成员。此时派生类对基类中各个成员的访问能力与继承方式无关,但继承方式将影响基类成员在派生类中的访问控制属性。基类中公有成员和保护成员在派生类中的访问控制属性将随着继承方式而改变:派生类从基类公有继承时,基类的公有成员和保护成员在派生类中仍然是公有成员和保护成员;派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都改变为私有成员;派生类从基类保护继承时,基类的公有成员在派生类中改变为保护成员,基类的保护成员在派生类中仍然为保护成员。所以,选项A、C和D都是正确的。

第3题:

下面描述中,表达错误的是()。

A公有继承时基类中的public成员在派生类中仍是public的

B公有继承是基类中的private成员在派生类中仍是private的

C公有继承时基类中的protected成员在派生类中仍是protected的

D私有继承时基类中的public成员在派生类中是private的


正确答案:B

第4题:

访问修饰符作用范围由大到小是( )

A)private-default-protected-public

B)public-default-protected-private

C)private-protected-default-public

D)public-protected-default-private


答案:D

第5题:

下面叙述错误的是( )

A.对基类成员的访问能力在private派生类中和public派生类中是相同的

B.基类的private成员在public派生类中不可访问

C.基类中的public成员在protected派生类中是protected的

D.基类中的public成员在protected派生类中仍然是public的


正确答案:D

第6题:

protected和private区别在于:protected成员可以被派生类访问,而private成员则不能被派生类访问。()


参考答案:正确

第7题:

下列叙述中错误的是

A.公有继承时基类中的public成员在派生类中仍是public成员

B.私有继承时基类中的protected成员在派生类中仍是protected成员

C.私有继承时基类中的public成员在派生类中是private成员

D.保护继承时基类中的public成员在派生类中是protected成员


正确答案:B
解析:在私有继承方式下,所有的类成员都继承为私有成员。

第8题:

按照变量的作用域可将变量划分为( )

A.公有、私有、系统

B.全局变量、窗体/模块级变量、局部变量

C.动态、常数、静态

D.Public、Private、Protected


正确答案:B

第9题:

有如下两个类定义: classXX{ private: doublexl; protected: doublex2; public: doublex3; }; claseYY:protectedXX{ private: doubleyl; protected: doubley2; public: doubley3; }; 在类YY中保护成员变量的个数是( )。

A.1

B.2

C.3

D.4


正确答案:C
C。【解析】派生类从基类保护继承classYY:pr0-teetedXX时,基类的公有成员在派生类中变为保护成员,基类的保护成员在派生类中仍然是保护成员;本题中YY本身有一个保护成员y2,再加上基类XX的x2和x3,故选C。

第10题:

下列哪个成员方法声明是正确的? ( )

A.public abstract final int f(){...}

B.public static boolean f(){...}

C.static protected void g(a,{...}

D.protected private number;


正确答案:B
解析:本题考查对成员方法声明的掌握程度。选项A错误,成员变量不能同时声明成abstract和final;选项B正确,声明了一个公有静态返回值类型是布尔类型的方法f();选项C错误,protected应在static之前;选项D错误,既不是方法声明,也不是正确的成员变量声明。