C类和对象知识点复习.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
服了C结构体的缺点。
2014.3.1
C++中引入了类的概念, 它不仅可以含有数据,而
且还可以含有函数。
类声明的简化格式如下: class 类名{
类的声明由关键字 class打头,后源自类名数据花括号中是类体
函数
};
以一个分号“;”结束
类中的数据和函数,分别称作数据成员和成员函数。
类声明的简化格式如下: class 类名{
};
保护成员可以由本类的成员函数访 问,也可以由本类的派生类的成员函 数访问,而类外的任何访问都是非法 的。
(2) 具体的类来,类声明格式中的3个部分并非一定要 全有,但至少要有其中的一个部分。
一般情况,一个类的数据成员应该声明为私有成员,成 员函数声明为公有成员。
内部的数据整个隐蔽在类中,在类的外部根本就无法 看到,使数据得到有效的保护。
C语言结构体一般格式如下: struct 结构名{
数据 };
例如下面声明了一个日期结构体: struct Date{
int year; //年 int month; //月 int day; //日 };
例3.1 有关日期结构体的例子。
#include<iostream>
using namespace std;
using namespace std;
struct Date{ //声明了一个名为Date的结构体
int year; //公有的数据成员
int month; //公有的数据成员 int day; }; //公有的数据成员 int main()
程序的运行结果如下: 2014.3.1
{ Date date1;
私有成员只能被类 内的成员函数访问, 而类外部的任何访 问都是非法的。
date1.year=2014;//错误,在类外不能访问私有数据成员year
date1.month=3; //错误,在类外不能访问私有数据成员 month
date1.day=1; //错误,在类外不能访问私有数据成员day cout<<date1.year<<"."<<date1.month<<".“
//公有成员函数
private: int year; //私有数据成员 int month; //私有数据成员
设置日期成员函 数setDate和日期 显示成员函数
int day; //私有数据成员
showDate都是公
};
私有数据成员year、 有的成员函数,类外
month和day只能
部对类Date的数据
数据成员 函数函数
};
3.1.2 类的构成
在类中,数据成员和成员函数分别属于private部分、
和public部分。数据成员和成员函数一般也统称为类的
成员。
类声明的一般格式如下:
公有成员既可被类内的成 员函数访问,也可被类的外部
class 类名{
访问,是类与外界的接口。
public:
公有数据成员;
第3章 类和对象
3.1 类的构成 3.2 成员函数的定义 3.3 对象的定义和使用 3.4 构造函数与析构函数 3.5 对象的赋值与复制 3.6 自引用指针this 3.7 C++的string类
3.1 类的构成
3.1.1 从结构体到类 3.1.2 类的构成
3.1.1 从结构体到类
1.结构体的扩充
(3) 类声明中的private、protected和public三个关 键字可以按任意顺序出现任意次。但是,如果把所有的 私有成员、保护成员和公有成员归类放在一起,程序将 更加清晰。
(4) C++规定,在默认情况下(即没有指定成员是私有、 保护或公有时),类中的成员是私有的。
例3.2 将例3.1中的结构体struct改为类class。
由内部成员函数访问, 进行操作,只能通过
在类的外部无法访问, 这两个函数来实现。
保护了私有数据的安
全。
说明:
(1) 除了private和public之外,类中的成员还可以用另 一个关键字 protected来说明。被protected说明的数 据成员和成员函数称为保护成员。
类声明的完整格式如下:
class 类名{ public: 公有数据成员; 公有成员函数; protected: 保护数据成员; 保护成员函数; private: 私有数据成员; 私有成员函数;
#include<iostream>
using namespace std;
class Date{
//将例3.1中的结构体struct改为类class
int year;
//私有数据成员
int month; int day; }; int main() { Date date1;
//私有数据成员 //私有数据成员
公有成员函数;
private: 私有数据成员; 私有成员函数;
私有成员只能被类内的 成员函数访问,而类外部的
};
任何访问都是非法的。
用一个类Date来描述日期,其形式如下:
class Date {
public:
void setDate(int y,int m,int d); //公有成员函数
void showDate();
<<date1.day<<endl; //错误,不能访问私有数据成员
return 0;
}
如何才能访问类中的私有数据成员呢?
在默认情况下,结构体中的成员是公有的。因此,例3.1中
数据成员year、month和day默认为是公有的,结构体外
的变量date1能够对它们直接进行访问
#include<iostream> //例3.1 有关日期结构体的例子。
date1.month=3; //可以在结构体外直接访问数据month
date1.day=1; //可以在结构体外直接访问数据day
cout<<date1.year<<"."<<date1.month<<"."
<<date1.day<<endl;
return 0;
C++中引入了类的概念,克
}
程序的运行结果如下:
struct Date{ //声明了一个名为Date的结构体
int year; int month; int day; }; int main()
C语言中的结构体缺点:结构体变 量可以在结构体外直接访问数据,在C 结构体中的数据是很不安全的。
{ Date date1;
date1.year=2014 ;//可以在结构体外直接访问数据year