
C++
文章平均质量分 73
L_jiahao
这个作者很懒,什么都没留下…
展开
-
C++中的多态及多态的实现
C++中的多态分为静多态和动多态两种情况。静多态是在编译时就能确定调用函数的类型,包括重载和模板。动多态则是需要在运行时才能确定调用哪一个函数。动多态的产生条件是需要在基类的指针指向派生类的对象,并调用派生类的函数。而要想调用派生类的函数,那么基类里这个函数应写为虚函数。什么是虚函数?所谓的虚函数就是允许子类对其重新的定义,这种称之为覆盖。当基类写了虚函数时便会有虚函数指针(vptr)...原创 2019-03-05 19:52:26 · 276 阅读 · 0 评论 -
两个队列实现一个栈和两个栈实现一个队列
两个队列实现一个栈入栈时,直接push入queue1中出栈时,先将queue1中的元素除最后一个元素外依次pop出队列,并push入队列queue2中,将留在queue1中的最后一个元素出队列即为出栈元素,最后还要把queue2中的元素再次push进queue1中具体代码如下:template <typename T>class DouQue_Stack{pub...原创 2019-01-12 16:48:06 · 160 阅读 · 0 评论 -
虚函数的注意事项
虚函数是为了实现多态特性的。虚函数的调用只有在程序运行的时候才能知道到底调用的是哪个函数,虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。什么时候析构函数得写成虚函数当一个类被用来作为基类的时候,才把析构函数写成虚函数.因为如果这个类被其他类继承但并没有把析构函数写成虚函数,若定义一个父类的指针指向子类,当释放这个指针时的过程是:只是释放了父...原创 2019-01-08 17:59:07 · 291 阅读 · 0 评论 -
智能指针—强弱智能指针
智能指针通俗一点来说他是一个类,在类中有一个指针,可以将new获得的地址复制给智能指针。当智能指针过期时,类中的析构函数将使用delete来释放内存。在平时编写代码的时候经常会用到new来开辟空间,而我们开辟出来的空间必须得手动去delete他,但是如果程序员忘记去手动释放那边会出现一个麻烦的问题,内存泄漏!!或者是一块内存被多个函数同时使用时,如果其中一个函数不知道还有其他人也在使用这块内存...原创 2019-03-15 17:22:10 · 511 阅读 · 0 评论 -
内联函数和宏函数
内联函数内联函数关键字inline,所谓的内联函数和普通函数的区别主要是在函数调用上的区别,内联函数的调用和宏函数有点类似,他在调用点会将代码展开,而不是开辟函数栈。举一个简单的例子。int fun(int a,int b){ return a>b?a:b;}int main(){ int a; cin >> a; int b;...原创 2019-03-17 15:47:41 · 761 阅读 · 0 评论 -
C++中的重载、覆盖、隐藏
一、重载概念:重载是指相同的范围中(例如一个类)不同的函数使用相同的函数名,但是函数的参数个数或类型或顺序不同。调用的时候根据函数的参数来区别不同的函数。重载函数的返回值可相同也可不同。重载在编译期就可以确定了。注意重载是C++中独有的C语言中没有重载,要追究这一问题那就需要从编译的角度去分析这两者的不同。例如void fun(int a,int b);这个函数在C++和C编译后的符号是...原创 2019-03-31 21:12:03 · 494 阅读 · 0 评论 -
TCP服务器和客户端设计——c语言入门学习总结
在刚开始学习c语言的网络编程时的个人总结的大体思路,今天拿出来分享给大家希望对初期接触c语言网络编程的小伙伴有所帮助通过实现一个服务器和客户端交互的过程。这里主要通过多进程的方式实现多个客户端链接,虽然这样想出来的有很大的问题,但这样使用最简单的方法可以使大家能更好的理解网络编程的过程吧。网络程序是先有服务器程序启动,等待客户端的程序运行并建立连接.一般的来说是服务端的程序 在一个端口...原创 2019-04-10 18:03:02 · 871 阅读 · 0 评论 -
C/C++中的结构体区别 && C++中结构体与类的区别
C的结构体首先说说C的结构体的使用,结构体简单来说就是整合了多个类型变量的一个集合类型。方便大家整合数据,例如要记录一个人的信息需要姓名、地址、电话等信息这时结构体便可以发挥巨大的用处。c的结构体有四种声明的方式:(1)struct 结构体名称{ 数据类型 A; 数据类型 B;};声明时:struct 结构体名称 结构体变量名s...原创 2019-04-10 15:54:34 · 654 阅读 · 0 评论