《C++面向对象程序设计》教案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》课程教案
课程编号:08051230
课程名称:面向对象程序设计(Object-oriented Programming)
学时:72学时,其中理论学时54,上机学时18
学分:3.5
开课部门:数学与计算机科学学院
开课教研室:计算机科学
开课教师:雷小园
开课学期:第7学期
授课班级:04信计
先修课程:C语言程序设计
考核要求:考试,平时10%,实验20%,考试70%
使用教材:
《C++面向对象程序设计教程(第2版)》,陈维兴,清华大学出版社,2004年
《C++面向对象程序设计习题解答与实验指导》,陈维兴,清华大学出版社,2004年教学目的与要求:
《面向对象程序设计》是一门计算机及相关专业的重要的专业基础课。本课程讲述C++语言面向对象的基本特性,包括类、对象、派生类、继承、运算符重载、多态性、虚函数、函数模板、类模板、输入输出、流类库、文件等,使学生掌握面向对象程序设计的基本概念和基本方法,能运用C++语言进行基本的面向对象程序设计。
教学方法:
采用板书讲解C++程序设计,再加以上机练习C++编程。
第3章类和对象3.1 类与对象的基本概念
3.2 构造函数与析构函数
例:点类 Point
class Point
{
private:
int x,y;
public:
Point() {};
Point(int xx, int yy) { x=xx; y=yy; }
Point(Point &p) { x=p.x; y=p.y; }
int GetX() const { return x; }
int GetY() const { return y; }
void SetXY(int xx, int yy) { x=xx; y=yy; } void Show();
};
void Point::Show()
{ cout<<"X: "<<x<<", Y: "<<y<<endl;
}
例:人类 Person
class Person
{ protected:
char *name;
int age;
char sex;
public:
Person(char *n, int a, char s);
Person() { name = 0; age = 0; sex = ' '; } Person( Person &p );
~Person() { delete[] name; }
void SetName(char *n);
void SetAge(int a){ age = a; }
void SetSex(int s){ sex = s; }
char *GetName() const { return name; }
int GetAge() const { return age; }
char GetSex() const { return sex; }
void Show();
};
#include "person.h"
#include <iostream>
using namespace std;
Person::Person(char *n, int a, char s)
{ name = new char[strlen(n)+1];
strcpy(name,n);
age = a;
sex = s;
}
Person::Person(Person &p)
{ name = new char[strlen()+1];
strcpy(name,);
age = p.age;
sex = p.sex;
}
void Person::SetName(char *n)
{ delete[] name;
name = new char[strlen(n)+1];
strcpy(name,n);
}
void Person::Show()
{
cout<<"Name: "<<name<<", Age: "<<age<<", Sex: "<<sex<<endl; }
3.3 对象数组与对象指针
1、对象数组
所谓对象数组是指每一数组元素都是对象的数组。
2、对象指针
声明对象指针的一般语法形式为:类名* 对象指针名。
当用指向对象的指针来访问对象成员时,要用“->”操作符。
3、this指针
C++为成员函数提供了一个名字为this的指针,这个指针称为自引用指针。每当通过一个对象调用一个成员函数时,系统就自动把这个this指针指向该对象。因此使用的数据成员就是该对象的数据成员。
3.4 向函数传递对象
1、使用对象作为函数参数
2、使用对象指针作为函数参数
3、使用对象引用作为函数参数
3.5 静态成员
1、静态数据成员
在一个类中,若将一个数据成员说明为static,这种成员称为静态数据成员。与一般的数据成员不同,无论建立多少个类的对象,都只有一个静态数据的拷贝。从而实现了同一个类的不同对象之间的数据共享。
定义静态数据成员的格式如下:
static 数据类型数据成员名;
静态数据成员在该类定义之外被初始化。访问静态数据成员可以通过对象或指针来访问,也可以通过类名::来访问。
2、静态成员函数
定义静态成员函数的格式如下:
static 返回类型静态成员函数名(参数表);
与静态数据成员类似,调用公有静态成员函数的一般格式有如下几种: 类名::静态成员函数名(实参表)
对象. 静态成员函数名(实参表)
对象指针->静态成员函数名(实参表)