1、类的定义
class className//className为类的名字
{
//内部写成员函数和成员变量
};
类似于C中的结构体,只不过C中结构体不可以定义函数。
(1)声明和定义全放在类体中
成员函数如果在类中定义,编译器会将它当作内联函数来处理。所以一般不采用
class Person
{
public:
void show()
{
cout << _name << "-" << _sex << "-" << _age << endl;
}
public:
char* name;
char* _sex;
int age;
};
(2)声明放在.h中,类的实现放在.cpp中
常用这种方法
//person.h文件
class Person
{
public:
void show();
public:
char* name;
char* _sex;
int age;
};
//person.cpp文件
#include"person.h"
void Person::show()
{
cout << _name << "-" << _sex << "-" << _age << endl;
}
2、类的访问限定符
将类的对象的属性和方法结合起来,通过访问权限选择性将其接口提供给外部使用。
(1)public (公有),它修饰的成员在类外可以被直接访问。
(2)protected(保护)和private(私有)修饰的成员在类外不能被直接访问。
(3)面试题:C++中的struct和class有什么区别?
C++需要兼容C语言,所以C++中的struct还可以用来定义类。与class定义类是相同的,区别在于class的默认访问权限为private,struct的默认访问权限为public。
3、封装
(1)面向对象的三大特征:封装、继承、多态。
(2)在类和对象阶段,我们只研究封装特性。什么是封装?
封装:将数据和操作数据的方法结合起来,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。
(3)封装的本质是一种管理,用protected/private把成员封装起来,开放一些共有的成员函数对成员合理的访问。
4、类的实例化
C语言中是面向过程的,主要关注于过程;C++是基于面向对象的,主要关注于对象。
用类来创建对象的过程称为类的实例化。
举个形象的例子:
类就像是设计图,是不可以住人的,而实例化对象就是可以主人的实体建筑。
也就是说类实例化出来的对象才能实际存储数据。