目录
第1章 C++概述
第2章数据类型、运算符和表达式
第3章简单的输入/输出
第4章 C++的流程控制
第5章函数
第6章编译预处理
第7章数组
第8章结构体、共同体和枚举类型
第9章指针和引用
第10章类和对象
第11章类和对象的其他特性
第12章继承和派生
第13章多态性
第14章输入/输出流
第15章模板
第一部分面向过程的程序设计
第二部分面向对象的程序设计
第10章类和对象
类和对象的定义 从结构体到类
以前,定义结构体类型,描述一个对象:
struct SPerson //只有数据成员
{
char name[20]; //姓名
char sex; //性别
int age; //年龄
};
我们把一个对象可能具有的动作,加入到对象的描述中,就形成了类。
类和对象的定义形式
class <类名>
{ [ [private:] //私有成员,缺省存取权限
<数据成员及成员函数> ]
[ public: //公有成员
<数据成员及成员函数> ]
[ protected: //保护成员
<数据成员及成员函数> ]
};
私有成员:只允许类内成员函数存取它
公有成员:允许类内和类外函数存取它
保护成员:允许类内和其派生类函数存取它
[] 定义描述一个人的类Person,
#include <>
#include <>
class Person
{ private: // 此处,private可缺省
char Name[20]; //姓名
char Sex; //性别,三个数据成员
int Age; //年龄
public: // 以下定义了四个成员函数
void SetData(char n[ ], char s, int a)
{
strcpy(Name, n); //直接访问Name
Sex=s; //直接访问Sex 访问特性
Age=a; //直接访问Age
}
void GetName( char *n ) // 函数
{
strcpy(n, Name);
}
char GetSex( ) // 函数
{
return Sex;
}
int GetAge( ) // 函数
{
return Age;
}
}; // 注意:类定义结束处的分号不能少
对象的定义:
<类名> <对象列表>;
如:Person a, b ; // 定义a、b两个对象
可以定义对象的指针和对象数组:
如:Person *pa, *pb, x[10];
// pa和pb是两个Person类型指针, x是对象数组
pa=&a; pa=x;
pb=&b; pb=x;
那么能否这样访问对象a的成员呢?
, ,
回答是:不能!
类是一种类型,该类型的变量称为对象(实例)
对象成员的访问
访问权限
类内访问特性
类外访问特性
private
可直接访问
不可直接访问
protected
可直接访问
不可直接访问
public
可直接访问
可直接访问
表 10-1 类成员的访问特性
Person a, *pa=&a; //类外访问如下,
× pa->name ×
(…) √ pa-> SetData(…) √
成员函数的定义
,类体内定义成员函数。 ,类体外定义成员函数。
[] 定义Person类,在类体外定义成员函数,
#include <>
#include <>
class Person
{ char Name[20]; //姓名//注意缺省 private
char Sex; //性别
int Age; //年龄
public:
void SetData(char [ ], char , int );
void GetName(char *);
char GetSex( );
int GetAge( );
};
在类体内
进行
成员函数说明
// 在类体外定义成员函数
void Person::SetData(char n[ ], char s, int a)
{
strcpy(Name, n);
Sex=s;
Age=a;
}
void Person::GetName( char *n )
{
strcpy(n, Name);
}
限定Set
C++课件:10 来自淘豆网m.daumloan.com转载请标明出处.