![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言学习
文章平均质量分 77
心像
个人爱好者
展开
-
C++学习日志 (十):C++ this指针详解(精辟)
this 是C++中的一个关键字,也是一个 const指针,它指向当前对象,通过它可以访问当前对象的所有成员。 所谓当前对象,是指正在使用的对象。例如对于stu.show();,stu 就是当前对象,this 就指向 stu。 下面是使用 this 的一个完整示例: #include <iostream> using namespace std; class Student{ public: void setname(char *name); void setage(i...转载 2021-12-30 08:00:00 · 108 阅读 · 0 评论 -
C++学习日志 (九):C++析构函数详解
创建对象时系统会自动调用构造函数进行初始化工作,同样,销毁对象时系统也会自动调用一个函数来进行清理工作,例如释放分配的内存、关闭打开的文件等,这个函数就是析构函数。析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要程序员显式调用(程序员也没法显式调用),而是在销毁对象时自动执行。构造函数的名字和类名相同,而析构函数的名字是在类名前面加一个~符号。 注意:析构函数没有参数,不能被重载,因此一个类只能有一个析构函数。如果用户没有定义,编译器会自动生成一个默认的析构函数。 上节我们定义了一转载 2021-12-29 08:30:00 · 132 阅读 · 0 评论 -
C++学习日志 (八):C++构造函数详解
在C++中,有一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不能调用),而是在创建对象时自动执行。这种特殊的成员函数就是构造函数(Constructor)。 在《C++类成员的访问权限以及类的封装》一节中,我们通过成员函数 setname()、setage()、setscore() 分别为成员变量 name、age、score 赋值,这样做虽然有效,但显得有点麻烦。有了构造函数,我们就可以简化这项工作,在创建对象的同时为成员变量赋值,请看下面的代码(示例1): #inc转载 2021-12-29 08:30:00 · 139 阅读 · 0 评论 -
C++学习日志 (七):C++函数重载详解
在实际开发中,有时候我们需要实现几个功能类似的函数,只是有些细节不同。例如希望交换两个变量的值,这两个变量有多种类型,可以是 int、float、char、bool 等,我们需要通过参数把变量的地址传入函数内部。在C语言中,程序员往往需要分别设计出三个不同名的函数,其函数原型与下面类似: void swap1(int *a, int *b); //交换 int 变量的值 void swap2(float *a, float *b); //交换 float 变量的值 void swap3(ch转载 2021-12-29 08:00:00 · 76 阅读 · 0 评论 -
C++学习日志 (0):写在开头的话……
以前一直也在使用各种编程语言做过一些简单的开发,对C、C++有一些基础的理解,但一直在使用时存在很多不理解的内容。都是因为自己没有系统的学习过软件编程开发,一直以来都是以需要什么学什么的方法处理(这种方法最好不要使用,系统学习是必要的)。 找了很久的学习资料,一直没有找到合适的(各种“从基础到高手”的教学方法都是不系统的) 终于找到这一系统的学习资料,帮我解决了很多疑惑,让我豁然开朗,于是情不自禁的项分享给与我一样饱受痛苦的同学共勉! 我只是针对我自己学习上的缺欠进行了转载,需要更全内容的同学可以到转原创 2021-12-28 16:36:44 · 2421 阅读 · 0 评论 -
C++学习日志 (六):C++ inline内联函数详解
函数是一个可以重复使用的代码块,CPU 会一条一条地挨着执行其中的代码。CPU 在执行主调函数代码时如果遇到了被调函数,主调函数就会暂停,CPU 转而执行被调函数的代码;被调函数执行完毕后再返回到主调函数,主调函数根据刚才的状态继续往下执行。 一个 C/C++程序的执行过程可以认为是多个函数之间的相互调用过程,它们形成了一个或简单或复杂的调用链条,这个链条的起点是 main(),终点也是 main()。当 main() 调用完了所有的函数,它会返回一个值(例如return 0;)来结束自己的生命,从而结束.转载 2021-12-29 08:00:00 · 95 阅读 · 0 评论 -
C++学习日志(五):C++头文件和std命名空间(精辟)
C++是在C语言的基础上开发的,早期的 C++ 还不完善,不支持命名空间,没有自己的编译器,而是将 C++ 代码翻译成C代码,再通过C编译器完成编译。这个时候的 C++ 仍然在使用C语言的库,stdio.h、stdlib.h、string.h 等头文件依然有效;此外 C++ 也开发了一些新的库,增加了自己的头文件,例如: iostream.h:用于控制台输入输出头文件。 fstream.h:用于文件操作的头文件。 complex.h:用于复数计算的头文件。 和C语言一样,C++ 头文件仍然以.h为.转载 2021-12-29 08:00:00 · 137 阅读 · 0 评论 -
C++学习日志 (四):C++命名空间(名字空间)详解
一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。 例如小李和小韩都参与了一个文件管理系统的开发,它们都定义了一个全局变量 fp,用来指明当前打开的文件,将他们的代码整合在一起编译时,很明显编译器会提示 fp 重复定义(Redefinition)错误。 为了解决合作开发时的命名冲突问题,C++引入了命名空间(Namespace)的概念。请看下面的例子: namespace .转载 2021-12-28 16:16:37 · 71 阅读 · 0 评论 -
C++学习日志 (二)C++类和对象到底是什么意思?
目录 C++ 中的类(Class) C++ 中的“对象” C与C++ 中的区别 面向对象编程(Object Oriented Programming,OOP) 类(Class)的优点 是一门面向对象的编程语言,理解 C++,首先要理解类(Class)和对象(Object)这两个概念。 C++ 中的类(Class) 可以看做C语言中结构体(Struct)的升级版。结构体是一种构造类型,可以包含若干成员变量,每个成员变量的类型可以不同;可以通过结构体来定义结构体变量,每个变量拥有相同的性质...转载 2021-12-28 15:16:01 · 334 阅读 · 0 评论 -
C++学习日志 (一)“C和C++的关系”
C++读作“C加加”,是“C Plus Plus”的简称。顾名思义,C++ 是在C语言的基础上增加新特性,玩出了新花样,所以叫“C Plus Plus”,就像 iPhone 7S 和 iPhone 7、Win10 和 Win7 的关系。 从语法上看,C语言是 C++ 的一部分,C语言代码几乎不用修改就能够以 C++ 的方式编译,这给很多初学者带来了不小的困惑,学习 C++ 之前到底要不要先学习C语言呢? 我对这个问题保持中立,但是初学者直接学习 C++ 会非常吃力,Hold 不住,尤其是对计算机内存不太理.转载 2021-12-28 15:04:47 · 103 阅读 · 0 评论