博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++中常见概念、关键字等的区别
阅读量:5226 次
发布时间:2019-06-14

本文共 1204 字,大约阅读时间需要 4 分钟。

(1)、重载,覆盖和隐藏的区别;

重载主要是函数的重载,函数名相同,返回类型相同,但是函数形参不同,被调用时,根据函数形参决定调用原函数还是重载函数。

覆盖主要用在继承多态中,函数前加virtual关键字,子类继承了父类的某个虚函数,利用父指针调用时,子类的虚函数将父类的虚函数覆盖。

隐藏是指派生类的函数把基类的函数隐藏起来了。有两种情况:a.派生类与基类的函数名相同,返回类型相同,但是形参不同,则不论函数前面是否有virtual,基类的函数都被隐藏。b.派生类与基类的函数完全相同,但是基类没有virtual关键字,基类函数被隐藏。

(2)、指针和引用的区别;

指针是存储地址的一个变量,引用是变量的一个别名(在内存中占同一块内存)。主要区别是作为函数形参时指针与引用的区别:

a.如果函数传递的是指针时,其实赋给形参的只是实参值的拷贝,此时拷贝地址与实参地址是不一样的,但是指针指向的内容是一样的,所以函数调用结束后,指针的地址不能改变,但是可以改变指针指向的内容。如果想要改变指针的值,可以使用二级指针或者指针的引用。

b.如果函数传递的是引用,则相当于传递就是实参本身,函数调用结束后,对引用变量的改变跟对实参变量的改变一毛一样。

(3)、static作用

Static对函数、全局变量、局部变量的作用。

Static作用:限定作用域(隐藏)、存储方式不同(导致生命周期不同)、只初始化一次(默认初始化为0)

Static函数与普通函数的区别:作用域不同。Static函数只在本文件中有效,普通函数可以被同一源文件的其他文件调用。

Static全局变量与普通全局变量的区别:首先,存储方式都相同,都是存储在静态数据区(堆);其次,作用范围不同。普通全局变量在同一源程序的其他源文件中均有效,但是static全局变量只对定义它的源文件有效。

Static局部变量与普通局部变量的区别:首先作用域没变,只在定义该变量的函数体内有效;其次,存储方式发生改变,导致其生命周期不同。普通局部变量是存储在栈中的,函数结束后,操作系统自动释放该栈,static局部变量是存储在静态数据存储区堆中。

(4)、const作用;

Const意味着只读,你不能修改它。

本质:const在谁后面谁就不可修改,const在最前面则将其后移一位即可,二者等效

const int a;   //a是一个常整型变量

int const a;    //a是一个常整型变量

const int *a;    //a是一个指向常整型的指针,整型数不能改变,但是指针可以改变

int * const a;   //a是一个指向整形的常指针,整型数可以改变,但是指针不能改变

int const * a const;   //a是一个指向常整型的常指针

转载于:https://www.cnblogs.com/tracyhan/p/5490890.html

你可能感兴趣的文章
一位90后程序员的自述:如何从年薪3w到30w!
查看>>
在.net core上使用Entity FramWork(Db first)
查看>>
System.Net.WebException: 无法显示错误消息,原因是无法找到包含此错误消息的可选资源程序集...
查看>>
UIImage 和 iOS 图片压缩UIImage / UIImageVIew
查看>>
MongoDB的数据库、集合的基本操作
查看>>
ajax向后台传递数组
查看>>
疯狂JAVA16课之对象与内存控制
查看>>
[转载]树、森林和二叉树的转换
查看>>
WPF移动Window窗体(鼠标点击左键移动窗体自定义行为)
查看>>
软件测试-----Graph Coverage作业
查看>>
django ORM创建数据库方法
查看>>
创建Oracle synonym 详解
查看>>
php7 新特性整理
查看>>
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
linux查看端口占用
查看>>
Sql常见面试题 受用了
查看>>
知识不是来炫耀的,而是来分享的-----现在的人们却…似乎开始变味了…
查看>>
CSS背景颜色、背景图片、平铺、定位、固定
查看>>
口胡:[HNOI2011]数学作业
查看>>
我的第一个python web开发框架(29)——定制ORM(五)
查看>>