obj1.listen( );
obj1.speak( );
obj2.listen( );
obj2.speak( );
第1题:
已知类A有公用数据成员a,且有A ohj2;A*const ptr-new A;则下列语句正确的是( )。
A)ptr->a=100;
B)ptr=&obj2;
C)ptr++;
D)ptr=obj2;
本题主要考察const的使用,const根据其位置的不同修饰不同的成份,从而表现出灵 活的特性,考生容易混淆。此处const修饰的是指针,即指针本身不能改变.故选项B、C和D都是 错误的。但是指针指向的地址里面的值确实可以改变的,因此选项A是正确答案。
第2题:
( 12 )有如下程序:
#include <iostream>
using namespace std
class 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 ) {cout<<a.getType ( ) ; }
void speak ( Animal a ) {cout<<a.getVoice ( ) ; }
int main ( ) {
Dog d; type ( d ) ; cout<<" speak" ; speak ( d ) ; cout<<endi;
return 0;
}
运行时的输出结果是【 12 】 。
第3题:
已知类A有公用数据成员a,且有A obj2;A*const ptr=new A;则下列语句正确的是
A.ptr->a=100;
B.ptr=&obj2;
C.ptr++;
D.ptr=obj2;
第4题:
有如下类定义: 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.④
第5题:
下列类的构造函数不能通过编译,正确的构造函数应该是______。
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;
}
第6题:
有如下类声明: 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.4
B.3
C.2
D.1
第7题:
已知类 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 个函数
第8题:
编写类 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 个函数。
第9题:
有以下类定义 class Point{ public: Point{int x = 0, int y=0) {_x = x; _y = y;} void Move int xoff, int yoff) {_x +=xoff;_y+=yoff;} void Print() const {cout<<'('<<_x<<','<<_y<<')' << end1;} private: int_x,_y; }; 下列语句中会发生编译错误的是
A.Point pt;pt.Print();
B.const Point pt;pt.Print();
C.Point pt;pt.Move(1, 2);
D.const Point pt;pt.Move(1, 2)
第10题:
已知:print()函数是一个类的常成员函数,它无返回值,下列表示中,()是正确的。
第11题:
const void Show();
void const Show();
void Show() const;
void Show(const);
第12题:
void print()const
const void print()
void const print()
void print(const)
第13题:
( 28 )有如下程序:
#include<iostream>
using namespace std;
class MyClass{
public:
MyClass(int x):val(x) {}
void Print() const {cout<<"const:val="<<val<<'\t';}
void Print(){cout<<"val="<<val<<'t';}
private:
int val;
};
int main(){
const MyClass obj1(10);
MyClass obj2(20);
obj1.Print();
obj2.Print();
return 0;
}
程序的输出结果是
A ) val=10 const:val=20
B ) const:val=10 const:val=20
C ) const:val=10 val=20
D ) val=10 val=20
第14题:
有如下类声明: 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.4
B.3
C.2
D.1
第15题:
main函数中发生编译错误的语句是______。
include<iostream.h>
class A
{
public:
int a;
const int b;
A( ):a(10),b(20){}
void fun( )const
{
cout<<"a="<<a<<"\tb="<<b<<endl;
}
};
void main( )
{
A obj1;
const A*ptr=new A;
ptr=&obj1;
ptr->a=100;
ptr->fun( );
}
第16题:
有如下类定义:
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不能定义为常函数
第17题:
某类中有一个无参且无返回值的常成员函数Show,则正确的Show函数原型是
A.const void Show();
B.void const Show();
C.void Show()const;
D.void Show(const);
第18题:
有如下类定义和变量定义:
class A{
public:
A(){data=O; }
一A(){}
int GetData()const{ retum data; }
void SetData(int n) {data=n; }
private:
int data;
};
const A a;
A b;
下列函数调用中错误的是
A.a.GetData();
B.a.SetData(10);
C.b.GetData();
D.b.SetData(10);
第19题:
有如下类定义: 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{cout<<a;}//④ }; 其中四个函数的定义中正确的是( )。
A.①
B.②
C.③
D.④
第20题:
include<iostream>
include<string>
using namespace std;
class MyClass
{
public:
MyClass(int i=0){member=i;}
void SetMember(const string m){member="big"+m;m=member;}
string GetMember(){return member;}
void print()const{cout<<"Stu:"<<member<<endl;}
private:
string member;
};
void main()
{
MyClass obj1,*obj2;
string i="wang lin";
obj2=&obj1;
obj2->SetMember(i);
obj1.print();
}
第21题:
关于const关键字说法错误的是()
第22题:
若有类W说明class W{int a;public:voidfConst(int&)const;};,则函数fConst的正确定义是()
第23题:
void print()const;
const void print();
void const print();
void print(const);
第24题:
obj1.listen( );
obj1.speak( );
obj2.listen( );
obj2.speak( );