《C++面向对象程序设计》教案

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

第3章类和对象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: "<

}

例:人类 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

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: "<

3.3 对象数组与对象指针

1、对象数组

所谓对象数组是指每一数组元素都是对象的数组。

2、对象指针

声明对象指针的一般语法形式为:类名* 对象指针名。

当用指向对象的指针来访问对象成员时,要用“->”操作符。

3、this指针

C++为成员函数提供了一个名字为this的指针,这个指针称为自引用指针。每当通过一个对象调用一个成员函数时,系统就自动把这个this指针指向该对象。因此使用的数据成员就是该对象的数据成员。

3.4 向函数传递对象

1、使用对象作为函数参数

2、使用对象指针作为函数参数

3、使用对象引用作为函数参数

3.5 静态成员

1、静态数据成员

在一个类中,若将一个数据成员说明为static,这种成员称为静态数据成员。与一般的数据成员不同,无论建立多少个类的对象,都只有一个静态数据的拷贝。从而实现了同一个类的不同对象之间的数据共享。

定义静态数据成员的格式如下:

static 数据类型数据成员名;

静态数据成员在该类定义之外被初始化。访问静态数据成员可以通过对象或指针来访问,也可以通过类名::来访问。

2、静态成员函数

定义静态成员函数的格式如下:

static 返回类型静态成员函数名(参数表);

与静态数据成员类似,调用公有静态成员函数的一般格式有如下几种:

类名::静态成员函数名(实参表)

对象. 静态成员函数名(实参表)

对象指针->静态成员函数名(实参表)

例:点类 Point(演示静态成员)

class Point

{

private:

int x,y;

static int count;

public:

Point(int xx=0, int yy=0) { x=xx; y=yy; count++;}

Point(Point &p) { x=p.x; y=p.y; count++;}

int GetX() const { return x; }

int GetY() const { return y; }

void SetXY(int xx, int yy) { x=xx; y=yy; }

static int GetCount() { return count; }

};

int Point::count=0;

int main()

{

Point a(100,200), b;

cout<

cout<

}

3.6 友元

1、友元函数

友元函数不是当前类的成员函数,而是独立于当前类的外部函数,但它可以访问该类的所有对象的成员,包括私有成员、保护成员和公有成员。

2、友元成员

一个类的成员函数也可以作为另一个类的友元,这种成员函数不仅可以访问自己所在类对象中的所有成员,还可以访问friend声明语句所在类对象中的所有成员。

3、友元类

一个类也可以作为另一个类的友元。

相关文档
最新文档