1.面向过程和面向对象的认识
c语言是面向过程的,关注的重点是过程,分析解决问题的步骤,逐步解决问题。
c++面向对象的,关注的是对象,将一件事情拆分开,靠对象之间的交互关系完成
2.类的引入
结构体与类
c语言中结构体只可以定义变量,c++中结构体可以定义变量与函数。
对于结构体的定义,c++更多的使用class代替。
类的定义
class为类的关键字, class后面为类名,{}为类的主体,类定义结束时需要;
类中的元素称为类的成员,类中的数据称为类的属性或者成员变量,
类中的函数称为类的方法或成员函数。
定义一个·类
class TestCode
{
public:
void print()//成员函数为公有
{
cout << _name << _sex << _age << endl;
}
private://成员变量为私有
char* _name;
char* _sex;
int _age;
};
4.类的访问限定限定符以及封装
4.1访问限定符
c++实现封装的方式,将类和对象的属性的方法结合起来,让对象更加完善,通过访问权限限定符将接口提供给外部用户。
:public
-
访问限定符 : protected
-
private
注:访问限定符只在编译时有用。
c++中class与struct 的区别
C++中可以使用任何一种定义类,struct定义的类默认公有,class默认为私有。
4.2 封装
面向对象的三大特性:封装,继承,多态
封装:将数据与操作数据的方法结合(通过定义类·实现),只是通过接口来实现功能,
5.类的作用域
类里面的成员都在类的作用域中,在类外定义成员,需要使用作用域解析符::
6。类的实例化:
使用类创建对象的过程,称为类的实例化
定义类并没有分配内存,定义出对象才占用物理空间。
7.类的大小:
类的大小是类里面成员变量之和,注意内存对齐,空类的大小(1个字节)
8.this指针
c++给每一个非静态成员函数,增加了一个隐藏的指针参数,该指针指向当前对象,在函数体中完成成员变量的操作,都是通过该指针
指针类型 类的类型* const
只可以在成员函数内部使用
this指针实际上是成员函数的一个参数,调用成员函数的时候,将对象的地址空间传给this指针的形参,对象中并不存储该指针。
this指针为编译器自动传递,不需要自己定义,都是座位成员函数的第一个形参
类的6个默认成员函数
- 构造函数
1.1构造函数是一个特殊的成员函数,名字与类名相同,创建类类型对象由编译器自动调用,在对象生命周期只能调用一次。
1.2构造函数是一种特殊的成员函数,其主要任务为初始化对象。
特征:函数名与类名相同
无返回值
对象实例化编译器自动调用对应的构造函数
构造函数可以重载.
1.3如果类中无定义的构造函数,编译器会自动生成一个默认的构造函数,用户自定义后则不再生成
1.4无参的构造函数和全缺省的构造函数,都叫做默认的构造函数,且默认构造函数只有一个
析构函数
在对象销毁时会自动调用析构函数,完成资源的清理工作
1.1特征:
析构函数是特殊的成员函数,
1.析构函数名是在类名前面加上字符~
2.无参数无返回值。
3.一个类只有一个析构函数,若未显示定义,系统会自定义默认的析构函数
4.对象生命周期结束时,c++编译系统自动调用析构函数