首先,C语言存在解决不好或者没有解决的问题:
1.当我们创建一个结构体变量时,我们容易忘记对它进行初始化,然后使用结束后容易忘记对它进行销毁操作。
2.C语言的封装性做的不好,一个结构体变量谁都可以访问,这样很不安全。
3.如果同一个功能的函数或者结构体,虽然只是参数或者成员类型不同,但是也需要分别进行不同的定义。
针对以上存在的问题,C++定义了这些东西来解决这些问题:
1,构造函数和析构函数,即便我们不定义这两个函数,编译器也会帮我们自动生成,当我们实例化一个类对象时,编译器会自动调用构造函数来初始化;同理,销毁对象时,编译器也会自动调用析构函数。跟C语言相比,不用手动初始化和销毁。
2,跟C语言的结构体相比,C++有访问限定符如:public,private等,private区域的需要类成员或者友元才访问,外界不能直接访问。
3,模板,对于相同功能的类或者函数,可以做成模板,使用时只需指定类型即可实例化出对应的函数或者类(注意:实例化过程是在预处理阶段进行的)