类和对象的关系:类是对象的抽象,对象是类的具体实例
1.类的声明和定义
c++中的类类似于c语言中的结构体
c语言中的结构体:
struct data
{
int day;
..........
}date; //同时定义一个结构体类型data的变量date
c++中的类:
class data //声明类类型
{
public: //声明以下部分为共有的
void Show();
{
cout<<day<<endl;
}
..........
private: //声明以下部分为私有类型
int day;
..........
};
data d1; // 声明的同时定义一个data类的对象d1.
2.类的访问限定符
c++类中具有三种访问限定符 public , private , protected 。
在public 范围内的成员具有公有属性,即在类的内外都可以访问具有公有性质的类的成员。
在private 范围内的成员具有私有属性,即在类的外面不可以访问具有私有性质的类的成员,在类的里面不受限制。
在protected 范围内的成员称为被保护的成员,在类的外面不可以访问具有保护性质的类的成员,在类的里面可以被访问,也可以被派生类的成员函数访问。
3.面向对象的封装性
类具有封装性,把需要展示出来的细节展示出来,把不需要展示的细节隐藏起来,使用对象的人完全不需要明白其中具体的细节就可以完成简单的操作。
“封装”具有两方面的含义:①将有关的数据和操作代码封装在一个对象中,形成了一个一个的基本单位,各个对象之间互相独立,互不影响。
②可以将部分重要的细节隐藏起来,留出少量的接口和外界接触并接收外界的数据,将信息隐蔽起来
4.对象的大小计算
一个类的对象所占用的存储空间只是该对象的数据成员部分所占用的存储空间,不包括函数代码所占用的存储空间。
如果类中没有成员,则系统默认对象的大小为1。
如果类中有成员,则以最大成员的字节数作为默认字节数来计算,例如:
class T
{
int a;
char b;
};
因为int 占4个字节,char占1个字节,所以以4个字节为默认字节对齐,即sizeof(T)的值为8;
c++中类对象的大小计算也遵循内存对齐原则。
5.类的成员函数
类的成员函数分为在类内定义成员函数和在类外定义成员函数
注意:在类外定义成员函数时必须使用符号 ::来对函数进行域的划分。
6.对象成员的引用
1.通过对象名和成员运算符访问对象中的成员
⑴加入定义了一个Time类的对象T1
则 Time T1;
假设Time类中的成员hour为共有成员。
则访问Time类中的成员hour:
T1.hour=1;
⑵指针访问
例如 : Time *p,T1;
*p=&T1
此时引用Time中的成员hour为:
p->hour
⑶通过引用访问
例如:Time T1;
Time& T2=T1;
此时引用Time类中的成员hour:
T2.hour=1;