类MyClas的定义如下: class MyClas{ public: MyClas(){} MyClas(int a){ value=new.int(i); } int *value; }; 若要对类中的value赋值,则下面的语句中正确的是( )
A.MyClas x;x.value=10;
B.MyClas x; *x.value=10;
C.MyClas x;x. *value=10;
D.MyClas x(10);
第1题:
有如下类定义: ClaSS MyClass{ int value; public: MyClass(int n):value(n){ } int getValue( )const{return value;} l; 则类MyClass的构造函数的个数是
A.1个
B.2个
C.3个
D.4个
第2题:
类MyClas定义如下: Class MyClas{ public: MyClas(){value=0;} setVariable(int i){value=I;} private: int value; }则以下对语句序列 MyClas *p,my;p=&my; 的描述正确的是( )。
A.语句 p->setVariable(5) 与语句 my.setVariable(5) 等价
B.对语句 *p.setVariable(5)的调用是正确的
C.语句 MyClas *p,my; 会调用两次类MyClas的构造函数
D.语句 p=&my; 是把对象my赋值给指针变量p
第3题:
已知类MyClass的定义如下:
classMyClass{
public:
voidfunctionl(MyClass&c){out<<c.data;}
statievoidfunction2(MyClas&c){cout<<c.data;}
voidfunction3(){out<<data;}
statiCvoidfunction4(){COut<<data;}
private:
intdata;
}:
其中有编译错误的函数是( )。
A.function1
B.function2
C.function3
D.function4
第4题:
有如下类定义: class MyClass{ int value; public: MyClass(int n):value(n){} int getValueconst{retum value;} }; 则类MyClass的构造函数的个数是( )。
A.1个
B.2个
C.3个
D.4个
第5题:
若类A和类B的定义如下: class A { int i,j; public: int geti () { return i; } }; class B : public A { int k; public: void make () { k=i*j; } }; 则上述定义中非法的语句是
A.k=i*j;
B.int k;
C.return i;
D.void make()
第6题:
若类A和类B的定义如下: #include<malloc.h> class A { int i*j; public: int geti() { return i; } }; class B: public A { int k; public: void make() { k=i*j; } ); 则上述定义中非法的表达式是( )。
A.k=i*j;
B.int k;
C.return i;
D.void make();
第7题:
若类A和类B的定义如下: class A { int i,j; public: int geti() { return i; } }; class B: public A { int k; public: void make() { k=i*j } }; 则上述定义中
A.k=i*j;
B.int k;
C.return i;
D.void make()
第8题:
假定用户没有给一个名为MyClas的类定义析构函数,则系统为其定义的默认析构函数形式为【 】。
第9题:
设有如下程序: #include <iostream> using namespace std; class A { public: int i; display() { cout<<"class A\n"; } }; class B { public: int i; display() { cout<<"class B\n"; } }; class C : public A, public B { int j; public: int i; show ( ) { j = i * i; display(); } }; int main() { C demo; demo.show(); return O; } 则主程序运行时将( )。
A.因为变量i的重复定义而报错
B.因为对象demo间接调用display()函数时产生二义性而报错
C.因为类定义的语法错误而不能运行
D.没有语法错误,能够正常输出结果
第10题:
已知类MyClas有一个只需要一个double型参数的构造函数,其将运算符“+”重载为友元函数。要使语句序列 MyClas x(1.2),y(2.3),z(0);z=x+y; 能够正常运行,运算符函数 operator+应在类中声明为( )。
A.friend MyClas operator+(int,MyClas&);
B.friend MyClas operator+(MyClas,MyClas);
C.friend MyClas operator+(MyClas,MyClas&);
D.friend MyClas operator+(MyClas&,MyClas);
第11题:
类MyClass的定义如下: class MyClass { public: MyClass(){} MyClass(int i) { value=new int(i); } int *value; }; 若要对类中的value赋值,则下面的语句中,正确的是( )。
A.MyClass my;my.value=10;
B.MyClass my;*my,value=10;
C.MyClass my;my.*value=10;
D.MyClass my(10);
第12题:
若类A和类B的定义如下: class A { int i,j; public: void get(); //… } ; class B:A//默认为私有派生 { int k; public: void make(); //… }; void B::make() { k=i*j; } 则上述定义中, ( )是非法的表达式。
A.void get();
B.int k;
C.void make();
D.k=i*j;
第13题:
若类A和类B的定义如下
class A
{
int i,j;
public:
int geti( )
{
return i;
}
};
class B:public A
{
int k:
public:
void make( )
{
k=i*j;
}
};
则上述定义中非法的语句是
A.k=i*j
B.int k;
C.return i;
D.void make()
第14题:
有如下程序 #include <iostream>using namespace std;int i=1;class Fun {public:static int i;int value(){ return i-1;}int value()const{ return i+1;}};int Fun:: i=2;int main() {int i=3;Fun fun1;const Fun fun2;______________________return ();}若程序的输出结果是:123
A.cout<<fun1.value()<<Fun:: i<<fun2.value();
B.cout<<Fun::i<<fun1.value()<<fun2.value();
C.cout<<fun1. value()<<fun2.value()<<Fun:: i;
D.cout<<fun2.value()<<Fun:: i<<fun 1.value();
第15题:
假定MyClas为一个类,则该类的拷贝构造函数的声明语句为( )。
A.MyClas&(MyClas x);
B.const MyClas&(MyClas x);
C.MyClas(const MyClas& x);
D.MyClas(MyClas& x);
第16题:
若有一个MyClas类,则执行语句MyClas a,b(2),*p;后,自动调用该类的构造函数 ( )次。
A.2
B.3
C.4
D.不确定
第17题:
假定MyClas为一个类,那么该类的析构函数是( )。
A.void~MyClas();
B.~MyClas(int n);
C.MyClas();
D.~MyClas();
第18题:
有如下程序: #include<iostream> using namespace std; int i=1; class Fun { public: static int i; int value(){return i-1;} int value()const{return i+1;} }; int Fun::i=2; int main() { int i=3; Fun fun 1; const Fun fun2; ______ return 0; } 若程序的输出结果是: 123 则程序中横线处的语句是( )。
A.cout<<fun1.value()<<Fun::i<<fun2.value();
B.cout<<Fun::i<<fun1.value()<<fun2.value();
C.count<<fun.value()<<fun2.value()<<Fun::i;
D.cout<<fun2.value()<<Fun::i<<fun1.value();
第19题:
有如下类定义: class Foo { public: Foo(int v) : value(v) { } // ① ~Foo() { } // ② private: Foo() { } // ③ int value = 0; // ④ }; 其中存在语法错误的行是( )。
A.①
B.②
C.⑧
D.④
第20题:
下面类的定义,有( )处错误。 class MyClass { public: void MyClass(); ~MyClass(int Value); private: int i=0; };
A.1
B.2
C.3
D.4
第21题:
下列程序在构造函数和析构函数中申请和释放类的私有成员,请完成该程序。
class Myclas{
int *x;
public:
MyClas(int n);
~MyClas();
};
MyClas::MyClas(intn){
【 】;
}
MyClas::~MyClas(){
【 】;
}
第22题:
若类A和类B的定义如下: class A { public: int i,j; void get(); }; class B:A{ int i, j; protected; int k; public: void make(); }; void B: :make()(k=i*j;} 则其中 ______ 是非法的表达式。
A.void get();
B.int k;
C.void make();
D.k=i*j;
第23题:
设有如下程序:#include <iostream. h>class A{public:int i;display(){ cout<<"class A\n"; }};class B{public:int i;display(){ cout<<"class B\n"; }};class C: public: A, public: B{int j;public:int i;show(){ j=i*i; display(); }};void main(){C demo;demo. show();}则主程序运行时,将( )。
A.因为变量i的重复定义而报错
B.因为对象demo间接调用display函数时产生歧义性而报错
C.因为类定义的语法错误而不能运行
D.没有语法错误,能够正常输出结果