C++学习(一)
面向对象和面向过程的区别
首先,c++是属于面向对象的编程语言。
在我的理解下,面向对象是将一类或者是一种事物包含的属性和他可能会产生的行为封装成一个类(这里的属性还有方法是这一类事物中共有的部分)。举一个简单的例子,我们将小狗作为一个对象,它有的基本属性是年龄、大小、体重、性格、品种等,它有的行为是跑、摇尾巴等。这是所有小狗的共性,所以我们可以将它作为一个整体是狗。
其次,我们所学的基础的语言C语言是属于面向过程的编程语言。
我认为,面向过程注重是做一个方法的细节,例如小狗摇尾巴,那它是在什么时候摇尾巴,是面对它的主人,还是面对给他食物的人。
面向过程和面向对象的优缺点
面向过程:
优点:性能比面向对象的高,因为类在调用的时候需要实例化(开辟空间)。
缺点:没有面向对象易扩展、易复用、易维护。
面向对象:
优点:易扩展、易复用、易维护。
缺点:性能比面向过程低。
类与对象的定义
类是一种用户自定义的数据类型,对象是具有类类型的变量。
类是对象的抽象,对象是类的具体实例,类是抽象的,不占用内存。对象是具体的,占用内存。
C++面向对象的三大特性之一:封装
封装的定义
将属性和行为作为一个整体,表示生活中的事物。
将属性和行为加上权限,加以限制。
封装的意义
目的在于将对象的使用者和设计者分开,以提高软件的可维护性和可修改性。
特性:
- 结合性,即是将属性和方法结合;
- 信息隐蔽性,利用接口机制隐蔽内部实现细节,只留下接口给外界调用;
- 实现代码重用;
类的访问权限
公有权限: public 成员类内部可以访问,类外部可以访问
保护权限: protected 成员 类内部可以访问,类外不可以访问
私有权限: private 成员 类内部可以访问,类外不可以访问
内联函数
内联函数的定义
在类声明的内部声明或定义的成员函数叫做内联(INLINE)函数。
类的成员成员函数用于实现某种操作,成员函数的定义体可以放在类声明体中,也可放在类声明体外,实际上普通函数也可以加上inline变为内联函数(内联函数只是一种编译器的建议)。
内联函数的特性
内联函数具有一般函数的特性,它与一般函数所不同之处只在于函数调用的处理。一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换。总结一句话:函数调用成为函数体代码。