C++的基础学习(一)
C++是属于C语言的超集,是基于C语言的面向对象语言,所以同时具备面向过程和面向对象两种特性。
关于C++面向过程的特性,可以根据C语言得知。
关于C++面向对象以及C所不具备的特性:
1.作用域运算符(::)
在C语言中,如果域内声明的变量与域外声明的变量名相同时,域内变量会覆盖域外变量,如果需要使用到域外变量,在C++中可以在变量名前加上作用于运算符(::)进行访问
1 int a = 10; 2 int main(){ 3 int a = 20; 4 cout<<a; 5 cout<<::a; 6 return 0; 7 }
输出10和20.
2.引用变量
在C中与指针相关的重要运算符是取值运算符(&)和取值运算符(*)。我们使用取值运算符创建一个变量A,将变量B的地址赋予
A,那么A与B所指向的内存地址是同一块内存,A与B任一发生变化则另一变量也会改变。取址运算符亦常常用于函数(方法)中,因为将参数传入方法时,方法域内会创建一个变量进行运算处理,并不会对参数变量本身进行处理,故在方法的作用域内使用取址运算符传入参数地址,即可使方法能够处理变量本身。
1 int a = 10; 2 int &b = a; 3 a++; 4 cout<<a; 5 cout<<b;
a,b指向同一块内存地址,输出11和11
函数中传入引用类型参数:
1 void test(int &a){ 2 a = a * a; 3 }
在C++中,函数支持默认参数
1 void test2(int &a, int count = 2){ 2 a = a * a; 3 }
上面这个函数的count默认值为2.
3.内存空间的开辟(new)和销毁(delete)
在C++中使用new关键字进行内存空间的开辟,对于不再使用的内存空间则使用delete进行销毁处理
4.面向对象的基本特性:抽象,封装,继承,多态
抽象是一种思想。面向对象的思想就是将一类具有相同相似特征(属性 Property),功能(方法 Method)的事物抽象成一个概念,即类(Class),这个概念中每一个独立个体即为一个对象(Object)。在进行面向对象编程时,我们主要操作的就是对象。
封装是将具有相同的特征和功能的事物,把相同的特征和功能封装为一个类,类似于一个基础的模板,在进行属性和方法操作时,能够直接通过类的实例化对象操作。
继承是指一个子类作为一个父类的继承,那该子类就拥有了父类的属性和方法(非私有)。除此之外,子类可以拥有属于自己的属性和方法,也可以对父类的方法进行覆盖。
多态,字面意义就是多种状态,即针对于同一操作,可能出现不同的结果,例如同一方法,子类可以通过重写父类方法进行覆盖。