C++程序设计课件 设计制作:徐龙琴 1
1 下列的各函数中,___不是类的成员函数.
a,构造函数 b,析构函数
c,友元函数 d,复制构造函数
2,___不是构造函数的特征。
a,构造函数的函数名与类名相同
b,构造函数可以重载
c,构造函数可以设置缺省参数
d,构造函数必须指定类型说明
3,___是析构函数的特征。
a,一个类中只能定义一个析构函数
b,析构函数在对象创建时调用
c,析构函数的定义只能在类体内
d,析构函数可以有一个或多个参数
一、选择题,
c
d
a
C++程序设计课件 设计制作:徐龙琴 2
4.关于成员函数特征的下述描述中,___是错误的。
a.成员函数一定是内联函数
b.成员函数可以重载
c.成员函数可以设置参数的缺省值
d.成员函数可以是静态的
5.复制构造函数的形参是 ___。
a.某个对象名
b.某个对象的成员名
c.某个对象的引用名
d.某个对象的指针名
a
c
C++程序设计课件 设计制作:徐龙琴 3
6.如果编程者没有显式定义构造函数(包括复制构造函数),
C++编译器就 ___。
a.出现编译错误
b.没有构造函数
c.必须显示定义
d.隐式定义缺省的构造函数
7.静态成员函数仅能访问 ___。
a.静态的数据成员
b.非静态的成员函数
c.非静态的数据成员
d.以上都不对
d
a
C++程序设计课件 设计制作:徐龙琴 4
8.静态数据成员的初始化必须在 ___。
a.类内
b.类外
c.在构造函数内
d.静态成员函数内
9.友元作用 ___。
a.提高程序的运用效率
b.加强类的封装性
c.实现数据的隐藏性
d.增加成员函数的种类
b
a
C++程序设计课件 设计制作:徐龙琴 5
10.下面关于类和对象的说法不正确的是
A)对象是类的一个实例
B)一个类只能有一个对象
C)类只有一个名字而对象名可以任意多个名字
D)类和对象的关系与数据类型和变量的关系相似
11.下面关于类的说法不正确的是
A)类是一种用户自定义数据类型
B)只有类的成员才能访问类的私有成员
C)在类中,如果不作特别声明,所有成员均为公有成员
D)在类中,如果不作特别声明,所有成员均为私有成员
12要使类中的某个成员可被自由访问,应使用的访问权限为
A) private B) protected
C) publish D) public
b
c
d
C++程序设计课件 设计制作:徐龙琴 6
13.下列描述正确的是
A) 构造函数可以重载,析构函数不能重载
B) 构造函数不能重载,析构函数可以重载
C) 构造函数可以重载,析构函数可以重载
D) 构造函数不能重载,析构函数不能重载
14假定一个类是 Student,那么该类的拷贝构造函数是
A)Student( Student s ); B)Student( Student *s );
C)Student( Student &s ) ; D)Student*( Student s ) ;
15 有关构造函数的说法不正确的是
A)构造函数的名字和类名是一样的 B)类中只有一个构造函数
C)构造函数可以有多个参数 D)构造函数无任何函数类型
a
c
b
C++程序设计课件 设计制作:徐龙琴 7
16.有关析构函数的说法不正确的是
A)析构函数的名字和类名是一样的 B)类中只有一个析构函数
C)析构函数绝对不能有参数 D)析构函数无任何函数类型
17.有关拷贝构造函数的说法不正确的是
A)拷贝构造函数的名字和类名是一样的
B)类中只有一个拷贝构造函数
C)拷贝构造函数可以有多个参数
D)拷贝构造函数无任何函数类型
a
C++程序设计课件 设计制作:徐龙琴 8
二 下列程序有无错误:
1,#include <iostream.h>
class Myclass
{public:
Myclass(int a)
{value=a; }
print()
{cout<<value<<endl;}
~Myclass( )
{value=0;}
private:
int value;
};
void main()
{ Myclass t(5);
t.print();
}
void print( )
C++程序设计课件 设计制作:徐龙琴 9
三 读程题:
1,#include <iostream.h>#include <math.h>
class Calculator
{public:
double add(double x,double y);
double sub(double x,double y);
double mul(double x,double y);
double div(double x,double y);};
double Calculator::add(double x,double y)
{return x+y;}
double Calculator::sub(double x,double y)
{return x-y;}
double Calculator::mul(double x,double y)
{return x*y;}
double Calculator::div(double x,double y)
{return x/y;}
void main()
{ Calculator val;
cout<<val.mul(val.add(2,3),val.sub(2,3))<<endl;}运行结果为:
-5
C++程序设计课件 设计制作:徐龙琴 10
2,#include <iostream.h>
class Myclass
{public:
Myclass(int a)
{X=a;
cout<<"This is "<<X<<"'s constructor."<<endl;}
~Myclass()
{cout<<"This is "<<X<<"'s destructor."<<endl;}
private:
int X;
};
void main()
{
Myclass c=1;
} 运行结果为:
This is 1 's constructor.
This is 1 's 's destructor.
C++程序设计课件 设计制作:徐龙琴 11
3,#include <iostream.h>
class M
{public:
M(int i,int j)
{X=i;Y=j;}
void sum(M a,M b)
{X=a.X+b.X;Y=a.Y*b.Y;}
void print()
{cout<<"X="<<X<<",Y="<<Y<<endl;}
private:
int X,Y;
};
void main()
{M a(10,20);
M b(a);
M c(a);
c.sum(a,b);
c.print();}
运行结果为:
X= 20,Y=400
C++程序设计课件 设计制作:徐龙琴 12
4,#include <iostream.h>
class Student
{private:
int no;
char name[10];
class cdegree
{public:
double math;
double english;
double physical;
}degree;
public:
void input()
{cout<<"please input data."<<endl;
cout<<"no:";cin>>no;
cout<<"name:";cin>>name;
cout<<"math:";cin>>degree.math;
cout<<"english:";cin>>degree.english;
cout<<"physical:";cin>>degree.physical;
cout<<endl;}
C++程序设计课件 设计制作:徐龙琴 13
void print()
{cout<<"bengin to output data."<<endl;
cout<<"no:"<<no<<endl;
cout<<"name:"<<name<<endl;
cout<<"math:"<<degree.math<<endl;
cout<<"english:"<<degree.english<<endl;
cout<<"physical:"<<degree.physical<<endl;}
};
void main()
{Student s;
s.input();
s.print();} 运行结果为:
C++程序设计课件 设计制作:徐龙琴 14
四 编程题:
1、设计一个三角形。该类的私有成员是三个边长;公有成员是
成员函数用于计算三角形的面积。
//Triangle.h内容
class Triangle
{private:
double a,b,c;
public:
void set(double l1,double l2,double l3);
void area();
};
//Triangle.cpp内容
#include <iostream.h>
#include <math.h>
#include,Triangle.h”
void Triangle::set(double l1,double l2,double l3)
{ a=l1;b=l2;c=l3;}
C++程序设计课件 设计制作:徐龙琴 15
void Triangle::area()
{
double s;
s=(a+b+c)/2;
cout<<"Area is:"<<sqrt(s*(s-a)*(s-b)*(s-c))<<endl;
}
void main()
{
Triangle S;
S.set(3.0,4.0,6.0);
S.area();
}
C++程序设计课件 设计制作:徐龙琴 16
#include <iostream.h>
#include <string.h>
class Student
{ private:
char name[10];
int age;
char sex;
public:
Student(char *); //重载构造函数
Student(char *,int); //重载构造函数
Student(char *,int,char); //重载构造函数
Student(Student &p); //拷贝构造函数
~Student(); //析构函数
void print();
};
2、使用构造函数定义一个学生类并初始化。
C++程序设计课件 设计制作:徐龙琴 17
Student::Student(char *sname)
{strcpy(name,sname);
age=0;
sex=' ';}
Student::Student(char *sname,int sage)
{strcpy(name,sname);
age=sage;
sex=' '; }
Student::Student(char *sname,int sage,char ssex)
{strcpy(name,sname);
age=sage;
sex=ssex; }
Student::~Student()
{ };
Student::Student(Student &s)
{strcpy(name,s.name);
age=s.age;
sex=s.sex;};
C++程序设计课件 设计制作:徐龙琴 18
void Student::print()
{cout<<"name:"<<name<<endl;
cout<<"age:"<<age<<endl;
cout<<"sex:"<<sex<<endl;}
void main()
{Student s1("kld1");
Student s2("kld2",18);
Student s3("kld3",18,'m');
Student s4=s3;
s1.print();
s2.print();
s3.print();
s4.print();
}
C++程序设计课件 设计制作:徐龙琴 19
2 设计复数类,并实现复数输入、输出。
3.设计学生管理类,含基本信息、考试成绩、输入、输出。
4.用类编程计算两个给定正方形的周长。
5 创建一个通讯录类,包含姓名、地址、邮编、手机、固话等
信息。使用成员函数实现输入记录和删除记录。
6.设计复数类,实现复数加、减、乘、除函数。
7.设计“汉诺塔( Tower of Hanoi)游戏”类,汉诺塔游戏:古代
印度布拉玛庙里的僧侣们玩的一种游戏,一块铜板上有三个竖
杆 a,b,c,在 a杆上从上往下由小到大放置了 64个金属盘,游戏
的目的是把金属盘全部从 a杆移到 b杆上,在移动的过程中小盘
必须在大盘的上面。试设计“汉诺塔类”实现游戏规则。
C++程序设计课件 设计制作:徐龙琴 20
2 编写几何点(二维平面上)的类 Point,包括位置属性(二维
坐标 x,y),成员函数包括点的位置获取函数 GetX()和
GetY(),点的位置设置函数 SetX()和 SetY(),和点的
位置移动函数 MoveTo()以及点的信息打印函数 Display()。
9 编写几何图形圆的类 Circle,包括两个属性:圆心 O(用上题
中的 Point类实现)和半径 R。成员函数包括:圆心位置获取函
数 GetO()和半径获取函数 GetR();半径位置设置函数
SetR();圆的位置移动函数 MoveTo();圆的半径设置函
数 SetR();以及圆的信息打印函数 Display()。
10 编写复数类 Complex。实现各种常用构造函数,实现整数、
实数向复数的转化函数,实现整数、实数和复数以及复数
之间的加、减、乘、除各种运算,实现==、!=等逻辑运算。