天津理工大学C++期末考试

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、明确的概念:

(1)理解类和对象的概念;(具体见附一)

类是抽象的对象是具体的例如:你、我、他都是人那么

你、我、他就是对象人就是类

(2)掌握类与对象的定义方法;

类的定义:

class 类名{ …/*定义这个类*/}; //(别忘了最后的分号

对象的定义:

类名对象名(参数);

(3)理解类的成员的访问控制的含义,公有和私有成员的区别;

public://访问属性为公有通过外部直接访问即:对象名.成员名或成员函数

private://访问属性为私有不能通过外部直接访问(不声明访问属性时系统默认为私有)当出现对象名.成员(私有)时编译器报错

protected://访问属性为保护与private类似但protected属性的成员可以继承 private不能继承(4)掌握构造函数和析构函数的含义与作用、定义方式和实现;

构造函数:为数据成员开辟存储空间

函数名必须与类名相同之前绝对不许说明返回值类型 void也不行

构造函数不能由用户调用即:对象名.构造函数名(参数)是错误的

构造函数是随着对象的声明而调用的

例如:class Student{Student(){cout<<”Hello.”<

Int main(void)

{cout<<”Hello.”<

Student A;

}

运行结果:Hello. //<-这个Hello是主函数中的

Hello. //<-是声明A对象时调用的构造函数构造函数中的Hello 析构函数功能与构造函数相反注意调用时间和顺序(看书)

二、练习项目

1.

输入下列程序,按要求进行实验,并记录实验的结果。 #include using namespace std;

class Coordinate {

public: Coordinate(int x1, int y1){x=x1; y=y1;} Coordinate(Coordinate &p); ~Coordinate(){cout<<"Destructor is called."<

Coordinate::Coordinate(Coordinate &p){//拷贝构造函数 x=p.x; y=p.y; cout<<"Copy initianization constructor is called."<

int main(){ Coordinate p1(3,4); Coordinate p2(p1); Coordinate p3=p2; cout<<"p3=("<

return 0;

}

(1) 记录程序的运行结果

(2) 将Coordinate 类中带有两个参数的构造函数进行修改,

在函数体增加如下语句:

cout<<”Constructor is called.”<

重新记录程序的运行结果,并解释输出结果。

(3) 按下列要求进行测试。

在主函数体,添加如下语句:

Coordinate p4; 错误原因:构造函数没有参数 构造函数为Coordinate::Coordinate(int ,int) Coordinate p5(2); 错误原因:参数数量不对

2.

根据注释语句的提示实现类Date 的成员函数,并将完整的程序编译、连接成功以保证程序能够正确运行。 #include class Date{ public:

void printDate(); //显示日期 void setDay(int); //设置日的值

运行结果:

Copy initianization constructor is called. Copy initianization constructor is called. p3=(3,4)

Destructor is called. Destructor is called.

Destructor is called.

Press any key to continue

调用构造函数 调用拷贝构造函数(见书P89) 程序结束时 调用析构函数 注意析构函数的调用顺序 从上至下 依此为 p3 p2 p1的析构函数

void setMonth(int); //设置月的值

void setYear(int); //设置年的值

private:

int day, month, year;

};

int main(){

Date testDay;

testDay.setDay(5);

testDay.setMonth(10);

testDay.setYear(2010);

testDay.printDate();

};

void Date::setDay(int d){day=d;}

void Date::setMonth(int m){month=m;}

void Date::setYear(int y){year=y;}

void Date::printDate(){cout<

3.

下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测试

该类设计的正确性。

#include

using namespace std;

class counter

{

public:

counter(int number=0) //构造函数

{

value=number;

}

void increment(); //给value原值加1

void decrement(); //给value原值减1

int getvalue(); //取得计数器值

int print(); //显示计数

private:

int value; //数据成员

};

void counter::increment(){value++;cout<<"The counter has increased by 1"<

void counter::decrement(){value--;cout<<"The counter has decreased by 1"<

int counter::getvalue(){return value;}

int counter::print(){cout<<"\nDisplay:"<

相关文档
最新文档