CMS专题

多选题class BaseClass{   private float x= 1.0f;   protected void setVar (float f) {x = f;}   }   class SubClass exyends BaseClass {   private float x = 2.0f;   //insert code here  8. }   Which two are valid examples of method overriding?()AVoid setVar(float 

题目
多选题
class BaseClass{   private float x= 1.0f;   protected void setVar (float f) {x = f;}   }   class SubClass exyends BaseClass {   private float x = 2.0f;   //insert code here  8. }   Which two are valid examples of method overriding?()
A

Void setVar(float f) {x = f;}

B

Public void setVar(int f) {x = f;}

C

Public void setVar(float f) {x = f;}

D

Public double setVar(float f) {x = f;}

E

Public final void setVar(float f) {x = f;}

F

Protected float setVar() {x=3.0f; return 3.0f; }

参考答案和解析
正确答案: F,E
解析: 暂无解析
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

指出下面程序段中的错误,并说明出错原因【 】。

class Location {

int X, Y=20;

protected:

int zeroX, zeroY;

int SetZero(int ZeroX, iht ZeroY);

private:

int length, height;

public:

float radius;

void init(int initX,int initY);

int GetX();

Int GetY();

};


正确答案:int XY=20; 出错不能采用这种方式初始化
int X,Y=20; 出错,不能采用这种方式初始化

第2题:

下列程序的执行结果是______。 include class Student { public: Student(int xx){x=

下列程序的执行结果是______。

include<iostream.h>

class Student

{

public:

Student(int xx){x=xx;}

virtual float calcTuition( );

protected:

int x;

};

float Studertt::calcTuition( )

{

return float(x*x);

}

class GraduateStudent:public Student

{

public:

GraduateStudent(int xx):Student(xx){}

float calcTuition( );

};

float Graduatestudent::calcTuition( )

{

return float(x*2);

}

void main( )

{

Student s(20);

GraduateStudent gs(30);

cout<<s.calcTuition( )<<" "<<gs.calcTuition( )<<endl;

//计算学生s和研究生gs的学费

}


正确答案:400 60
400 60

第3题:

已知如下类定义: class Base { public Base (){ //... } public Base ( int m ){ //... } protected void fun( int n ){ //... } } public class Child extends Base{ // member methods } 如下哪句可以正确地加入子类中?()

A.private void fun( int n ){ //...}

B.void fun ( int n ){ //... }

C.protected void fun ( int n ) { //... }

D.public void fun ( int n ) { //... }


正确答案:CD

第4题:

请找出下列程序中错误之处 ______。 include classA{private: intx1;protected: int

请找出下列程序中错误之处 ______。

#include<iostream.h>

class A{

private:

int x1;

protected:

int x2;

public:

int x3;

};

class B:public A{

private:

int y1;

protected:

int y2;

public:

int y3;

void disp(){cout<<x1<<y1<<end1:} //A

void set(int i) {x2=i;} //B

};

void main() {

B bb;

bb.x3=10; //C

bb.y3=10; //D

}

A.A

B.B

C.C

D.D


正确答案:A

第5题:

若有以下程序:include using namespace std;class A{private: int x;protected: int

若有以下程序: #include <iostream> using namespace std; class A { private: int x; protected: int y; public: int z; void setx(int i) { x=i; } int getx () { return x; }; class B : protected A { public: void setvalue(int a, int b, int c) { setx (a); y=b; z=c; } void display() { cout<<getx ( ) <<", "<<y<<", "<<z<<", "<<end1; } }; int main () { B obj; obj.setvalue(5, 6, 7); obj.display ( ); return 0; } 程序运行后的输出结果是( )。

A.产生语法错误

B.7,6,5

C.5,6,7

D.7,5,6


正确答案:C
解析:本题考核保护继承中对类成员的访问权限。①在保护继承中,基类公有成员和保护成员都以保护成员身份出现在派生类中,而基类私有成员不可访问。②基类的公有成员和保护成员被继承以后作为派生类的保护成员,这样,派生类的其他成员可以直接访问它们。③由保护派.生的类声明的对象,不能访问任何基类的成员。在本题中,基类A中的数据成员y和函数setx,经过保护继承以后,在派生类B中成为保护成员,派生类B的对象不能访问它们。而派生类B中的函数setvalue和display都是公有成员,可以通过对象对它们进行访问。所以程序中对各成员的访问是正确的。本程序的功能是对类中各数据成员进行赋值,然后查看赋值是否正确。

第6题:

已知有下列类的说明,则下列哪个语句是正确的?public class Test { private float f=1.0f; int m=12; static int n=1; public static void main(String arg[]) { Test t= new Test(); }}

A.t.f;

B.this. n

C.Test.m;

D.Test.f;


正确答案:A
解析:此题主要考查对象的正确使用,其格式为对象名.调用的方法名或变量名。在static方法中,不能使用 this。变量m和f都不是静态成员,所以不能用类名.成员方式访问。

第7题:

12 一个给定的数值由左边开始升位到右边第 N 位,如

0010<<1 == 0100

或者

0001 0011<<4 == 0011 0000

请用 C 或者 C++或者其他 X86 上能运行的程序实现。

-----------------------------------------------------------------------------

-----------------------------------

附加题(只有在完成以上题目后,才获准回答)

In C++, what does "explicit" mean? what does "protected" mean?

explicit

C++ Specific

This keyword is a declaration specifier that can only be applied to

in-class constructor declarations. Constructors declared explicit will not

be considered for implicit conversions. For example:

class X {

public:

explicit X(int); //legal

explicit X(double) { //legal // ... }

};

explicit X::X(int) {} //illegal

An explicit constructor cannot take part in implicit conversions. It can

only be used to explicitly construct an object. For example, with the class

declared above:

void f(X) {}

void g(int I)

{

f(i); // will cause error

}

void h()

{

X x1(1); // legal

}

The function call f(i) fails because there is no available implicit

conversion from int to X.

Note It is meaningless to apply explicit to constructors with multiple

arguments, since such constructors cannot take part in implicit conversions.

END C++ Specific

protected

C++ Specific —>

protected: [member-list]

protected base-class

When preceding a list of class members, the protected keyword specifies

that those members are accessible only from member functions and friends of

the class and its derived classes. This applies to all members declared up

to the next access specifier or the end of the class.

When preceding the name of a base class, the protected keyword specifies

that the public and protected members of the base class are protected

members of the derived class.

Default access of members in a class is private. Default access of members

in a structure or union is public.

Default access of a base class is private for classes and public for

structures. Unions cannot have base classes.

For related information, see public, private, friend, and Table of Member

Access Privileges.

END C++ Specific

Example

// Example of the protected keyword

class BaseClass {

protected: int protectFunc();

};

class DerivedClass : public BaseClass

{ public:

int useProtect() { protectFunc(); } // protectFunc accessible from

derived class

};

void main()

{

BaseClass aBase;

DerivedClass aDerived;

aBase.protectFunc(); // Error: protectFunc not accessible

aDerived.protectFunc(); // Error: protectFunc not accessible in derived

class } How do you code an infinite loop in C?


正确答案:
 

第8题:

已知如下类说明: public class Test { private float f = 1.0f; int m = 12; static int n=1; public static void main(String arg[]) { Test t = new Test(); // 程序代码… } } 如下哪个使用是正确的?()

A.t.f

B.this.n

C.Test.m

D.Test.n


正确答案:AD

第9题:

下面程序中错误之处是 ______。 include classA{private:intxl;protected:intx2;publ

下面程序中错误之处是 ______。

include<iostream.h>

class A{

private:

int xl;

protected:

int x2;

public:

int x3;

};

class B: public A{

private:

int b1;

protected:

int b2;

public:

int b3;

void disp(){cout<<x1<<b2<<end1;} //A

void set(int i){x3=i;} //B

};

void main()

B bb;

bb. a3=10 //C

bb. b3=10 //D

}


正确答案:√
1

第10题:

若有以下程序:include using namespace std;class Base{private: int x;protected: i

若有以下程序: #include <iostream> using namespace std; class Base { private: int x; protected: int y; public: int z; void setx(int i) { x=i; int getx () { return x; } }

A.1,2,3,4

B.产生语法错误

C.4,3,2,1

D.2,3,4,5


正确答案:A
解析:本题考核私有继承中类成员的访问权限。当类的继承方式为私有继承时,基类公有成员和保护成员都以私有成员属性出现在派生类中。私有派生类的成员对其基类成员的访问权和公共派生的方式相同,但是,由私有派生的类声明的对象,不能访问任何基类的成员。本题中,基类Base中的保护成员y和公有成员setx和getx,经过私有继承以后,称为派生类Inherit的私有成员,所以可以在派生类Inherit的函数成员中对它们进行访问。类Inherit中的函数成员setvalue和display都是公有成员,所以可以通过Inherit的对象对它们进行访问。本程序的功能是对类中各数据成员进行赋值,然后查看赋值是否正确。

更多相关问题