计算机二级

有如下类定义: classMyClass( public: ____ private: intdata; }; 若要为Myclass类重载流输入运算符>>,使得程序中可以“cin>>obj;”形式输入MyClasS类的对象obj,则横线处的声明语句应为( )。A.friendistream&operator>>(istream&is,MyClass&a);B.friendistream&operator>>(istream&is,MyClassa);C.istream&operalor>>(istream

题目

有如下类定义: classMyClass( public: ____ private: intdata; }; 若要为Myclass类重载流输入运算符>>,使得程序中可以“cin>>obj;”形式输入MyClasS类的对象obj,则横线处的声明语句应为( )。

A.friendistream&operator>>(istream&is,MyClass&a);

B.friendistream&operator>>(istream&is,MyClassa);

C.istream&operalor>>(istream&is,MyClass&a);

D.istream&operator>>(istream&is,Myclassa);

如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

如下类定义中包含了构造函数和拷贝构造函数的原型声明,请在横线处填写正确的内容,使拷贝构造函数的声明完整。

Class myClass{

private:

int data;

public:

myClass(int value);//构造函数

myClass(const【 】anotherObject);//拷贝构造函数

}


正确答案:myClass&
myClass& 解析:本题考查的知识点是:拷贝构造函数。拷贝构造函数定义的一般格式如下:
类名>::类名)(const类名>&引用对象名>)
{
//拷贝构造函数体
}
而在类中的声明部分则可省去类名>::。故本题应该填myClass&。

第2题:

下面类的定义,有( )处错误。 class MyClass [ public: void MyClass(); ~MyClass(int Value); private: int i=0; };

A.1

B.2

C.3

D.4


正确答案:C
解析:上述类的定义共有3处错误。第一处:类的成员变量不能在定义时进行初始化:第二处:类的构造函数不能有返回值(包括void类型);第三处:类的析构函数不能有参数。

第3题:

下面类的定义,有( )处错误。 class MyClass {public: void MyClass(); ~MyClass(int value); private: int i=0;};

A.1

B.2

C.3

D.4


正确答案:C
解析: 上述类的定义共有3处错误。(1) 类的成员变量不能在定义时进行初始化;(2) 类的:构造函数不能有返回值(包括void类型);(3) 类的析构函数不能有参数。

第4题:

下面类的定义,有( )处错误。 class MyClass { public: void MyClass(); ~MyClass(int Value); private: int i=0; };

A.1

B.2

C.3

D.4


正确答案:C
解析:该类的定义共有3处错误。①类的成员变量不能在定义时进行初始化:②类的构造函数不能有返回值(包括void类型);③类的析构函数不能有参数。

第5题:

下面类的定义,有( )处错误。 class MyClass { public: void MyClass(); ~MyClass(int Value); private: int i=0; };

A.1

B.2

C.3

D.4


正确答案:C
解析:上述类的定义共有3处错误。第一处:类的成员变量不能在定义时进行初始化:第二处:类的构造函数不能有返回值(包括void类型);第三处:类的析构函数不能有参数。

第6题:

已知类MyClass的定义如下: ClassMyClass{ public: MyClass(intd){data=d;} ~MyClass(){} private: intdata; }; 下列对MyClass类对象数组的定义和初始化语句中,正确的是( )。

A.MyClassarray[2];

B.MyClassarray[2]={MyClass(5)};

C.MyClassarray[2]={MyClass(5),Myclass(6)};

D.MyClass*array=newMyClass[2];


正确答案:C
C。【解析】A只是声明,没有初始化;B的初始化错误,另一个数组对象没有指明地址;D同样做的不是初始化的事情。

第7题:

有如下的类的模板定义: template class MyClass { private:T number; public:MyClass(

有如下的类的模板定义:

template <class T>

class MyClass

{

private:

T number;

public:

MyClass(T k);

};

其中构造函数MyClass()用k的值初始化数据成员n。因此在模板类体外,构造函数

MyClass应定义为【 】。


正确答案:templateclassT>/MyClassT>::MyClass(T k):number(k){}
templateclassT>/MyClassT>::MyClass(T k):number(k){} 解析:类模板的成员函数的类体外的定义以“templateclass T>”开头。

第8题:

有如下类定义: class MyClass { public: private: ______________________________________ int data; }; 若要为MyClass类重载流输入运算符“>>”,使得程序中可以“cin>>obj;”的形式改变MyClass类的对象0bj中数据成员data的值,则横线处的声明语句应为( )。

A.friend istream& operator>>(istream&is,MyClass&A.;

B.friend istream&operator>>(istream&is,MyClass A.;

C.istream&operator>>(istream&is,MyClass&A.;

D.istream&operator>>(istream&is,MyClass A.;


正确答案:A
本题考查重载流运算符“>>”,根据重载规则,本题答案为A。

第9题:

下面类的定义,有( )处错误。 classMyClass {public: voidMyClass(); ~MyClass(intvahle); private: inti=0;};

A.1

B.2

C.3

D.4


正确答案:C
C。【解析】上述类的定义共有三处错误:①类的成员变量不能在定义时进行初始化;②类的构造函数不能有返回值(包括void类型);③类的析构函数不能有参数。