下列运算符函数中肯定不属于类FunNumber的成员函数的是( )。
A:intoperator-(FunNumber); B:FunNumberoperator-(); C:FunNumberoperator-(int); D:intoperator-(FunNumber,FunNumber);
下列各组类型声明符中,含义相同的一组是( )。
A:unsignedlongint和long B:signedshort和short C:unsignedshort和short D:shortint和int
关于纯虚函数,下列表述中正确的是( )。
A:纯虚函数是没有给出实现版本(即无函数体定义)的虚函数 B:纯虚函数的声明总是以“=0”结束 C:派生类必须实现基类的纯虚函数 D:含有纯虚函数的类不可能是派生类
若已定义:
inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是( )。
A:a[p-a] B:*(&a[i]) C:p[i] D:a[10]
派生类的成员函数不能访问基类的( )。
A:公有成员和保护成员 B:公有成员 C:私有成员 D:保护成员
函数定义为Fun(int&i),变量定义n=100,则下面调用正确的是( )。
A:Fun(20); B:Fun(20+n); C:Fun(n); D:Fun(&n);
有如下四个语句:
①cout<<’A’< ②cout< ③cout<<’A’< ④cout< 其中能显示A******B的是( )。
A:①和③ B:①和④ C:②和③ D:②和④
下列关于运算符重载的描述中,正确的是( )。
A:运算符重载为成员函数时,若参数表中无参数,重载的是一元运算符 B:一元运算符只能作为成员函数重载 C:二元运算符重载为非成员函数时,参数表中有一个参数 D:C++中可以重载所有的运算符
有如下的程序:
#include
#include
usingnamespacestd;
classMyString
{public:
MyString(constchar*s);
MyString(){delete[]data;}
protected:
unsignedlem
char*data;};
MyStrin9::MyString(constchar*s)
{len=strlen(s);
data=newchar[len+1];
strcpy(data,s);}
intmain()
{MyStringa("C++Programing");
MyStringb(a);
return0;}
在运行上面的程序时出错,出错的原因是( )。
A:构造函数的实参不允许是本类的对象 B:没有定义实现深层复制的复制构造函数 C:构造对象a时实参与形参类型不符 D:系统不能生成默认的复制构造函数
有如下程序:
#include
usingnamespacestd;
classMyClass{
public:
MyClass(){++count;)
~MyClass(){--count;)
staticintgetCount(){returncount;}
private:
staticintcount;
};
intMyClass::count=0;
intmain(){
MyClassobj;
cout< MyClass*ptr=newMyClass;
cout< deleteptr;
cout< return0;
}
程序的输出结果是( )。
A:121 B:232 C:221 D:122