C/C++
如是雨林
熟悉java,嵌入式C语言和操作系统
展开
-
C++避坑:基类函数有无virtual关键字,差别巨大
如上图所示,有无virtual对于多态特性的实现是非常重要的,test()没有添加virtual关键字,则编译器直接按照类型来调用对应的函数,不会考虑多态特性。testV()由于添加了virtual关键字,则编译器会考虑多态特性,在运行时调用子类的testV()函数。我们都知道子类继承父类,然后父类指针指向子类对象,则父类指针调用的虚函数其实是调用的子类的虚函数。在java语言中,是可以实现的,只要重写了父类函数。在C++中,父类函数前面不加virtual,则无法实现多态特性,直接上代码进行对比。...原创 2022-08-13 10:45:42 · 1488 阅读 · 1 评论 -
C/C++——函数传值方式
这里不细分C语言和C++的区别,简单讨论C++的的函数传值方式。讨论参数传递的时候,我们将一个参数变量看成(address:value)。C++中函数的参数传递有三种方式:值传递:在C/C++中,值传递就是函数体的参数没有加*或者&,为什么叫值传递呢?就是因为我们只是将值传进函数体内了,但是参数的地址,我们并没有传递进去,简单来说就是只是简单复制了值而已。示例代码:#i...原创 2018-09-01 16:50:20 · 659 阅读 · 0 评论