概述
这里说几点(和java,python)不一样的:
*.类定义是以关键字 class 开头,后跟类的名称。类的主体是包含在一对花括号中。类定义后必须跟着一个分号或一个声明列表。
函数相关:
先复习一下函数声明和函数定义的相关知识:
“函数定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单位。
而“函数声明”的作用则是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。
在书写形式上,函数声明可以把函数头部复制过来,在后面加一个分号;而且在参数表中可以只写各个参数的类型名,而不必写参数名。
再来说一下头文件,这个东西是c/c++的特色:
通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。
类比java的包,也就是import后面的东西 , 假如你在C++里要导个东西 ,不能直接 "#include 'xxx.cpp' " .而是要先写个和源代码同名的头文件(.h),这个头文件里放变量和函数的声明,最后"#include 'xxx.h' ".相比其他语言C++导包的过程多了一步.
优势:
有两个用处,一个是在开发编译的时候,在各个编译单元(Compile Unit)之间共享同样的定义;一个是在发布程序库的时候,让使用者知道调用接口。比ctrl+o看源码可能方便一点
注意点:
防重入开关,C++ 编译器自适应开关,头文件里应该 ,include 所有该文件中所使用的其它接口头文件,再详细的就不在这里写了,这里主要写类和对象.
成员函数:
声明写在.h中,定义写在.cpp中,记的在函数名称前加"类名 ::(范围解析运算符)". 或者写成内联函数(地下有).
构造函数:
可以简单写成没有返回值的成员函数,但这里很容易出问题,详细版本在此:https://blog.csdn.net/realliyuhao/article/details/106319244
析构函数:
是类的一种特殊的成员函数,它会在每次删除所创建的对象时执行。
析构函数的名称与类的名称是完全相同的,只是在前面加了个波浪号(~)作为前缀,它不会返回任何值,也不能带有任何参数。析构函数有助于在跳出程序(比如关闭文件、释放内存等)前释放资源。
拷贝构造函数:
是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。详细信息:https://blog.csdn.net/realliyuhao/article/details/106328954
友元函数:
是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。详细信息在此:
https://www.runoob.com/cplusplus/cpp-friend-functions.html,
https://www.cnblogs.com/zhuyf87/archive/2013/02/25/2932682.html
内联函数:
内联函数是通常与类一起使用。如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。
注意点:
如果想把一个函数定义为内联函数,则需要在函数名前面放置关键字 inline;
在类定义中的定义的函数都是内联函数;
当函数体比较小的时候, 内联该函数可以令目标代码更加高效,这其实就是个空间代价换时间的i节省. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联.
其内部不允许使用循环语句和开关语句.
this 指针(->):
Java里的this,python里的self,在python中体现得比C++更明显,类内部的函数第一个参数就是self,甚至可以显示命名.还有,友元函数没有该指针,该指针不能访问静态成员变量.
类的静态成员:
基本的:https://www.runoob.com/cplusplus/cpp-static-members.html
一些有意思的:
https://blog.csdn.net/lms1008611/article/details/81408236 静态成员的基本用法;
https://blog.csdn.net/u011857683/article/details/52294353 静态函数访问非静态成员
指向类的指针:
与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算符 ->,就像访问指向结构的指针一样。与所有的指针一样,您必须在使用指针之前,对指针进行初始化。
最后
以上就是威武热狗为你收集整理的C++类/对象学习笔记函数相关:的全部内容,希望文章能够帮你解决C++类/对象学习笔记函数相关:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复