C++复习(1):类的简单介绍及C语言中函数用法的扩充

来源:互联网 发布:网络扑克有挂没 编辑:程序博客网 时间:2024/05/30 02:24

今天刚刚结束了c++的学习,来对C++进行一波复习,顺便对比与C语言之不同。
首先 c++与C语言之最大不同在于类的出现,也就是编程思想的不同,相比于C语言c++更加多元化,当然也就更复杂。

1.类的简单介绍
C语言是没有类的只有一个类的雏形结构体功能也很单一只是能多存放几种数据而已。
c++中的类,是一种抽象的东西可以说是一种框架,需要通过对象的定义向内填充东西。

类占内存吗?

#include<iostream>using namespace std; class A { };int main() { cout << sizeof(A) << endl; return 0; } 

运行结果为1. 即使类是一种抽象的概念 也是占据内存空间的。

类中可以定义多种内容,函数,数据,并可以对它们的访问属性进行限定,因此类的功能集成且强大,这就体现了面向对象的思想。
访问属性:public,private,protected(一般用于继承与派生中)。

2.C++的函数功能扩充
类中的函数是重要组成部分,数据的修改,对象要实现哪些操作都需要函数的参与,因此在c++中对函数的功能进行了扩充。
1)函数的重载
函数的重载简单来说就是同一个函数名,不同的函数实现相同或不同的功能。
举例:

int max(int a,int b){return(a>b?a:b);}float max(float a,float b){return(a>b?a:b);}

函数重载必须能让编译器识别出调用函数的不同,因此定义函数中不能只有函数的返回值不同,那样编译器无法识别调用的是哪个函数。

2)函数的模板
函数的模板简单来说就是,相同的函数名,相同的功能不同数据类型的函数定义方式。

举例:

template <typename T>T max(T a,T b,T c)  //用虚拟类型T表示类型{if(b>a) a=b; if(c>a) a=c; return a;}

调用此类函数时,直接调用向其传参即可,但是参数类型必须一致,否则无法编译通过。

3)含默认值参数的函数
即定义函数时,就对函数的参数进行赋值,当调用函数时,可不对此参数传参。

举例:

void display(int a = 1,int b = 1,int c =1){   cout<<a<<b<<c<<endl;}display(2,4);

对于设置参数的默认值应从右向左开始设置,原因就不多讲。

                                                                              2017年11月22日23:29:05                                                                              写于南京工程学院