C++典型例题-类与对象
类与对象
典型例题分析与解答
例题1:下列有关类的说法不正确的是()。
A.对象是类的一个实例
B.任何一个对象只能属于一个具体的类
C.一个类只能有一个对象
D.类与对象的关系和数据类型与变量的关系相似
例题2:下面()项是对构造函数和析构函数的正确定义。
A.void X::X(), void X::~X()
B.X::X(参数), X::~X()
C.X::X(参数), X::~X(参数)
D.void X::X(参数), void X::~X(参数)
例题3:()的功能是对象进行初始化。
A.析构函数 B. 数据成员 C.构造函数 D.静态成员函数
例题4:下列表达方式正确的是()。
A.class P{ B. class P{
public: public:
int x=15; int x;
void show(){cout<<<x;}<="" void="">
}; }
C. class P{ D. class P{
int f; public:
}; int a;
f=25; void Seta (int x) {a=x;} };
例题5:拷贝构造函数具有的下列特点中,()是错误的。
A.如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的
B.拷贝构造函数只有一个参数,并且是该类对象的引用
C.拷贝构造函数是一种成员函数
D.拷贝构造函数的名字不能用类名
例题6:关于静态成员的描述中,()是错误的。
A.静态成员可分为静态数据成员和静态成员函数
B.静态数据成员定义后必须在类体内进行初始化
C.静态数据成员初始化不使用其构造函数
D.静态数据成员函数中不能直接引用非静态成员
例题7:关于友元的描述中,()是错误的。
A.友元函数是成员函数,它被说明在类体内
B.友元函数可直接访问类中的私有成员
C.友元函数破坏封装性,使用时尽量少用
D.友元类中的所有成员函数都是友元函数
例题8:设有如下程序结构:
class Box
{ … };
void main()
{Box A,B,C; }
该程序运行时调用 (1) 次构造函数;调用 (2) 次析构函数。
例题9:设A为test类的对象且赋有初值,则语句test B(A); 表示。
例题10:利用“对象名.成员变量”形式访问的对象成员仅限于被声明为 (1) 的成员;若要访问其他成员变量,需要通过 (2) 函数或 (3) 函数。
例题11:分析出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。
#include
class one
{ int a1,a2;
public:
one(int x1=0, x2=0);
};
void main()
{one data(2,3);
cout<<data.a1<<endl;< p="">
cout<<data.a2<<endl;< p="">
}
例题12:分析以下程序的错误原因,给出修改方案使之能正确运行。
#include
class Amplifier{
float invol,outvol;
public:
Amplifier(float vin,float vout)
{invol=vin;outvol=vout;}
float gain();
};
Amplifier::float gain() { return outvol/invol; }
void main()
{ Amplifier amp(5.0,10.0);
cout<<"\n\nThe gain is =>"<<gain()<<endl;< p="">
}
例题13:下列程序的运行结果是。
#include
class point
{ int x,y;
public:
point(int a,int b)
{x=a;y=b;
cout<<"calling the constructor function."<<endl;< p="">
}
point(point &p);
friend point move(point q);
~point(){cout<<"calling the destructor function.\n";}
int getx() {return x;}
析构函数的定义
int gety() {return y;}
};
point::point(point &p)
{x=p.x; y=p.y;
cout<<"calling the copy_initialization constructor function.\n";
}
point move(point q)
{cout<<"OK!\n";
int i,j;
i=q.x+10;
j=q.y+20;
point r(i,j);
return r;
}
void main()
{ point m(15,40),p(0,0);
point n(m);
p=move(n);
cout<<"p="<&()<<","<&()<<endl;< p="">
}
例题14:定义一个学生类,其中有3个数据成员:学号、姓名、年龄,以及若干成员函数。同时编写main函数使用这个类,实现对的赋值和输出。
例题15:计算两点之间的距离。
补充习题
1.选择题
(1)对类的构造函数和析构函数描述正确的是()。
A.构造函数可以重载,析构函数不能重载
B.构造函数不能重载,析构函数可以重载
C.构造函数可以重载,析构函数也可以重载
D.构造函数不能重载,析构函数也不能重载
(2)类的析构函数的作用是()。
A.一般成员函数
B.类的初始化
C.对象初始化
D.删除对象
(3)假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为()。
A.OneClass(OneClass p);
B. OneClass& (OneClass p);
C. OneClass(OneClass & p);
D. OneClass (OneClass *p);
(4)下面对于友元函数描述正确的是()。
A.友元函数的实现必须在类的内部定义

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。