写“(二)”的原因在于,是想要接着上面一篇博客,接着写下去,看看能否形成一个良好的系统。
在C++的类(相当于C的结构体)当中,定义的变量,也就是数据成员,被称为属性; 而声明的函数,也就是函数成员,被称为是方法,我想C++和C之间,面向对象语言和面向过程语言的各自特点和联系,毕竟C++语言既可以面向对象,又可以面向过程。
上面提到的只是名称上面的不同,但是C++语言当中的类部分还有一些细则跟C是不一样的。
第一、类中的函数成员可直接访问本类中的数据成员,数据成员相当于是类中的全局变量。甚至可以调用本类中的函数成员,就是不知道能不能调用其他类当中的函数成员。
第二、类中的函数成员可以重载。这里重载要好好解释一下, 所谓重载是面向过程语言的一个特性,简单的说,就是不同函数成员之间可以重名。但是重名之后,两个函数的形参个数不能够相同,不然就变成了外观一样的函数了,哪怕里面不一样,但是计算机是识别不出来的。
第三、不同的类中可以有相同名字,甚至相同形参的函数成员和数据成员,这跟C语言的函数有异曲同工之妙。
第四、可以将函数成员定义成内联函数。在类实现部分定义函数成员时可以用“inline”关键字将其定义成内联函数,或者直接将该函数成员定义在类声明部分的大括号里。 C++编译器默认将直接定义在类声明部分大括号里的函数成员当做内联函数处理。(这一点是直接copy阚道宏老师ppt上面的课件)
PS:什么是内联函数?内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用处。编译时,类似宏替换。函数内联,大大提高了函数的执行效率。