单选题已知类IMS中两个成员函数的声明为“void listen()const;”与“void speak();”,另有两个对象的定义为“IMS obj1;”与“const IMS obj2;”,则下列语句中,产生编译错误的是( )。Aobj1.listen( );Bobj1.speak( );Cobj2.listen( );Dobj2.speak( );
单选题
已知类IMS中两个成员函数的声明为“void listen()const;”与“void speak();”,另有两个对象的定义为“IMS obj1;”与“const IMS obj2;”,则下列语句中,产生编译错误的是( )。
A
obj1.listen( );
B
obj1.speak( );
C
obj2.listen( );
D
obj2.speak( );
参考解析
解析:
成员函数是常成员函数时,常对象和一般对象都可以调用它;而对于一般成员函数,则只有一般对象可以调用,常对象调用它将产生错误。函数listen()为常成员函数,一般对象objl和常对象obj2都可以调用;函数speak()为IMS的一般成员函数,只有一般对象obj1可以调用,常对象obj2调用会产生编译错误。
成员函数是常成员函数时,常对象和一般对象都可以调用它;而对于一般成员函数,则只有一般对象可以调用,常对象调用它将产生错误。函数listen()为常成员函数,一般对象objl和常对象obj2都可以调用;函数speak()为IMS的一般成员函数,只有一般对象obj1可以调用,常对象obj2调用会产生编译错误。
相关考题:
已知:print( )函数是一个类的常成员函数,且无返回值。在下列表示中,正确的是( ) Avoid print( ) const;Bconst void print( );Cvoid print( );Dvoid print(const);
有如下类定义:class AA{int a;public:int getRef() const{return a;} // ①int getvalue() const{return a;} // ②void set(int n) const{a=n;} // ③friend void show(AA aa) const {cout // ④};其中的四个函数定义中正确的是A . ①B . ②C . ③D . ④
( 12 )有如下程序:#include iostreamusing namespace stdclass Animal{public:virtual char* getType () const { return "Animal" ; }virtual char* getVoice () const { return "Voice" ; }};Class Dog : public Animal {public:char* getType ( ) const {return "Dog" ; }char* getVoice ( ) const {return "Woof"}};void type ( Animal a ) {couta.getType ( ) ; }void speak ( Animal a ) {couta.getVoice ( ) ; }int main ( ) {Dog d; type ( d ) ; cout" speak" ; speak ( d ) ; coutendi;return 0;}运行时的输出结果是【 12 】 。
有如下类声明: class MyBASE { int k: public; void set(int n){k=n;} int get() const{return k;} }; class MyDERIVED: protected MyBASE { protected: int j; public: void set(int m, int n){MyBASE::set(m);j=n;} int get() const{return MyBASE::get()+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是( )。A.4B.3C.2D.1
使用VC6打开考生文件夹下的工程test12_3,此工程包含一个test12_3.cpp,其中定义了类Base和类A,类A公有继承 Base,但这两个类的定义都并不完整。请按要求完成下列操作,将程序补充完整。(1)定义枚举类型变量en,它包含两个枚举符front和back,请在注释“//**1**”之后添加适当的语句。(2)在类Base中添加常成员虚函数void E()的定义,该函数输出“In Base E!”,请在注释“//**2**”之后添加适当的语句。(3)在类A中添加常成员虚函数void E()的定义,该函数先调用基类中的虚函数 E()再输出“In AE!”,请在注释“//** 3**”之后添加适当的语句。(4)完成类A构造函数的定义,请使用参数列表的形式初始化类A的成员,并输出“A constructor.”,请在注释“//** 4**”之后添加适当的语句。输出结果如下:Base constructor.A constructor.In BaseE!In AE!In BaseP!In A!1A destructor.Base destructor.注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。源程序文件test12_3.cpp清单如下:include<iostream .h>// ** 1 **class Base{protected:int b1;int b2;public:Base();~Base();int Getb1()const { return b1; }void Setb1(int x){ b1 = x; }int Getb2()const { return b2; }void Setb2(int y) { b2 = y; }void Print()const {cout<<"In Base P!"<<end1;}// ** 2 **};Base::Base():b1(1),b2(5){cout<<"Base constructor."<<endl;}Base::~Base(){cout<<"Base destructor."<<endl;}class A:public Base{protected:en enA;public:A();~A();en GetColor()const { return enA; }void SetColor(en color){ enA = color; }void InA(){cout<<"In A!"<<endl;}// ** 3 **{Base::E();cout<<"In AE!"<<endl;}};// ** 4 **{cout<<"A constructor."<<endl;}A::~A(){cout<<"A destructor."<<endl;}void main(){A a1;a1.E();cout<<endl;a1.Print();a1.InA();cout<<a1.Getbl()<<endl;}
有如下类定义: class AA { int a; public: int getRef()const{ return a; } //① int getValue()const{ return a; } //② void set(int n)const{ a=n; } //③ friend void show(AA aa)const{ cout<<a; } //④ }; 其中的四个函数定义中正确的是( )。A.①B.②C.③D.④
以下哪个基类中的成员函数表示纯虚函数( )。A.virtual void vf (int)B.void vf(int)=0C.virtual void vf (=0)D.virtual void vf (int){}
以下基类中的成员函数,表示纯虚函数的是( )。 A.virtual void vf(int);B.void vf(int)=0;C.virtual void vf( )=0;D.virtual void vf(int){ }
下列程序中声明了两个类AA和BB,其中函数“print”是类AA的成员函数,但是类BB的友元函数。请在①、②和⑧处各填入正确的内容,使程序能正常运行。include<iostream.h>【 】;class AA{int t;public:AA(int x){t=x;}void print(BB b) ;};class BB{int s;public:BB(int y){s=y;}friend void 【 】 print(BB );};void 【 】{ cout<<"AA:"<<t<<"BB: "<<w.s<<end1;}<void main(){AA m(6);BB n(8);m.print(n);}输出结果为:AA:6;BB:8
有如下类定义:class Bag {public:Bag(int p,char s='M'):price(p),size(s) { count++; }~Bag() { count--; }int GetPrice() { return price; }int GetPrice() const { return price; }void SetPrice(int val) const { price=val; }private:int price;char size;static int count;};下列关于类成员的叙述中,正确的是( )。A. 成员函数GetPrice存在重定义B.构造函数的参数不能设置默认值C.析构函数中不能访问静态数据成员D.成员函数SetPrice不能定义为常函数
类模板templateclass x{...},其中,友元函数f对特定类型T(如int),使函数 f(x);成为 类模板template<class T>class x{...},其中,友元函数f对特定类型T(如int),使函数 f(x<int>);成为x<int>模板类的友元,则其说明为( )。A.friend void f();B.friend void f(x<T>);C.friend void A:: f()D.friend void C<D:: f(x<T>);
已知一个类A,类A有三个公有成员:void f1(int),void f2(int)和int a;定义指向类A成员函数的指针是( )。A.A*p;B.int A::*Pc=A.a;C.void(A::*pA) ();D.void(A::*p
下列类的构造函数不能通过编译,正确的构造函数应该是______。 include class Sample 下列类的构造函数不能通过编译,正确的构造函数应该是______。include<iostream.h>class Sample{public:int n;const int con;Sample(int m) {con=m+1;n=m;}void disp( ) {cout<<"normal:n="<<n<<endl;}void disp( )const {cout<<"static:n="<<n<<endl;}};void main( ){const Sample a (12);Sample b (13);a.disp( );b.isp( );cout<<a.n<<","<<b.con<<endl;}
已知一个类Sample,( )是定义指向类Sample成员函数的指针,假设类有三个公有成员:voidfl(int),void f2(int)和int a。A.Sample*pB.Int Samale::*pc=Sample::aC.Void (Sample::*Pa) ()D.Sample *P[10]
某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是A.const void Show();B.void const Show();C.void Show()const;D.void Show(const);
有如下类声明: class MyBASE{ int k; public: void set(int n){k=n;} int get( )const{return k;} }; class MyDERIVED:protected MyBASE{ protected: intj; public: void set(int m,int n){MyBASE::set(m);j=n;} int get( )const{return MyBASE::get( )+j;} }; 则类MyDERIVED中保护的数据成员和成员函数的个数是A.4B.3C.2D.1
2 编程:用C语言实现函数void * memmove(void *dest,const void *src,size_t n)。memmove函数的功能是拷贝src所指的内存内容前n个字节到dest所指的地址上。
已知类 String 的原型为class string{public:string(const char *str=null);//普通构造函数string(const string other);//拷贝构造函数---string(void);string operate=(const string other);//赋值函数private:char * m-data;//用于保存字符串};请编写 string 的上述4 个函数
有如下类定义: class AA { im a: public: int getRefconst{return&a;}//① int getValueconst{return a;}//② void set(int n)const{a=n;}//③ friend void show(AA aA.const{couta;}//④ }; 其中四个函数的定义中正确的是( )。A.①B.②C.③D.④
编写类 String 的构造函数、析构函数和赋值函数已知类 String的原型为:class String{public:String(const char *str = NULL); // 普通构造函数String(const String other); // 拷贝构造函数~ String(void); // 析构函数String perate =(const String other); // 赋值函数private:char *m_data; // 用于保存字符串};请编写 String的上述 4 个函数。
下列程序片段中,能通过编译的是( )。 A.public abstract class Animal{ public void speak;}S 下列程序片段中,能通过编译的是( )。A.public abstract class Animal{ public void speak;}B.public abstract class Animal{ public void speak{);}C.public class Animal{ pubilc abstract void speak;}D.public abstract class Animal{ pubile abstract void speak{};}
已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。A、void print()constB、const void print()C、void const print()D、void print(const)
若有类W说明class W{int a;public:voidfConst(int)const;};,则函数fConst的正确定义是()A、void W::fConst(intk)const{k=a;}B、void W::fConst(intk)const{k=a++;}C、void W::fConst(intk)const{cina;}D、void W::fConst(intk)const{a=k;}
单选题某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是( )。Aconst void Show();Bvoid const Show();Cvoid Show() const;Dvoid Show(const);
单选题已知函数print()没有返回值,如果在类中将之声明为常成员函数,正确的是( )。Avoid print()const;Bconst void print();Cvoid const print();Dvoid print(const);
单选题已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。Avoid print()constBconst void print()Cvoid const print()Dvoid print(const)