草庐IT

11道C++常见面试题以及答案(2022)

走进嵌入式 2025-06-21 原文

目录

一、面试问题

二、面试问题以及参考答案


一、面试问题

1.引用有什么特点?

2.什么是函数重载?

3.什么是构造函数?

4.什么是析构函数?

5.什么是拷贝构造函数?

6.const关键字的特点?

7.static关键字的特点?

8.实现动态多态需要具备什么条件?

9.C++中哪些运算符不能重载?

10.C++中Heap(堆)和Stack(栈)的区别是什么?

11.C++中有没有纯虚构造函数?

二、面试问题以及参考答案

1.引用有什么特点?
参考答案:
1.引用不占用内存空间,与引用的对象共用空间,引用必须初始化。
2.引用与引用对象的类型必须一致。
3.一个引用只能引用一个对象,一个对象可以被多次引用,一个引用可以被另一个引用引用。

2.什么是函数重载?
参考答案:
在同一个作用域内,函数名称相同,函数参数列表不同。

3.什么是构造函数?
参考答案:
构造函数是类的成员函数,函数名与类相同,函数没有返回值(返回值也不能是void),函数在创建类对象时自动调用(初始化操作),如果没有自定义构造函数系统会自己生成一个不带参数的构造函数。

4.什么是析构函数?
参考答案:
析构函数是类的成员函数,函数名称是类名称前面再加~,函数没有返回值(返回值也不能是void),在对象销毁时自动调用。

5.什么是拷贝构造函数?
参考答案:
拷贝构造函数也是类的成员函数,函数的参数就是这个类对象的引用,如果没有自定义拷贝构造函数系统会默认生成一个(浅拷贝),如果自定义了,系统就不再生成。

6.const关键字的特点?
参考答案:
1.const修饰的变量不能被修改。
2.const修饰的变量必须定义时就初始化。

7.static关键字的特点?
参考答案:
1.修饰全局变量时,该变量只能在同一文本内使用。
2.修饰局部变量时,该变量的值不会因为函数的终止而丢失。
3.修饰函数时,该函数只能在同一文本被调用。
4.修饰类的成员函数时,该成员函数被该类的所有对象共享数据。

8.实现动态多态需要具备什么条件?
参考答案:
1.虚函数。
2.继承。
3.父类指针指向子类对象。
4.弗雷指针访问虚函数。

9.C++中哪些运算符不能重载?
参考答案:
1 .(成员访问运算符)
2 .*(成员指针访问运算符)
3 ::(域运算符)
4 sizeof关键字
5 ?:(条件运算符)

10.C++中Heap(堆)和Stack(栈)的区别是什么?
参考答案:
Heap是堆,Stack是栈。Stack的空间由操作系统自动分配/释放,Heap上的空间是由程序员手动分配和释放的。Stack空间有限,Heap是很大的自由存储区。

11.C++中有没有纯虚构造函数?
参考答案:
没有,构造函数不能是虚的,只能有虚的析构函数。

有关11道C++常见面试题以及答案(2022)的更多相关文章

  1. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  2. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  3. ruby - 安装libv8(3.11.8.13)出错,Bundler无法继续 - 2

    运行bundleinstall后出现此错误:Gem::Package::FormatError:nometadatafoundin/Users/jeanosorio/.rvm/gems/ruby-1.9.3-p286/cache/libv8-3.11.8.13-x86_64-darwin-12.gemAnerroroccurredwhileinstallinglibv8(3.11.8.13),andBundlercannotcontinue.Makesurethat`geminstalllibv8-v'3.11.8.13'`succeedsbeforebundling.我试试gemin

  4. 阿里云国际版免费试用:如何注册以及注意事项 - 2

    作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。​关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐

  5. Hive SQL 五大经典面试题 - 2

    目录第1题连续问题分析:解法:第2题分组问题分析:解法:第3题间隔连续问题分析:解法:第4题打折日期交叉问题分析:解法:第5题同时在线问题分析:解法:第1题连续问题如下数据为蚂蚁森林中用户领取的减少碳排放量iddtlowcarbon10012021-12-1212310022021-12-124510012021-12-134310012021-12-134510012021-12-132310022021-12-144510012021-12-1423010022021-12-154510012021-12-1523.......找出连续3天及以上减少碳排放量在100以上的用户分析:遇到这类

  6. ruby - ri 有空文件 – Ubuntu 11.10, Ruby 1.9 - 2

    我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da

  7. ruby - ruby 中的同一个程序如何接受来自用户的输入以及命令行参数 - 2

    我的ruby​​脚本从命令行参数获取某些输入。它检查是否缺少任何命令行参数,然后提示用户输入。但是我无法使用gets从用户那里获得输入。示例代码:test.rbname=""ARGV.eachdo|a|ifa.include?('-n')name=aputs"Argument:#{a}"endendifname==""puts"entername:"name=getsputsnameend运行脚本:rubytest.rbraghav-k错误结果:test.rb:6:in`gets':Nosuchfileordirectory-raghav-k(Errno::ENOENT)fromtes

  8. ruby - rails 3.2.2(或 3.2.1)+ Postgresql 9.1.3 + Ubuntu 11.10 连接错误 - 2

    我正在使用PostgreSQL9.1.3(x86_64-pc-linux-gnu上的PostgreSQL9.1.3,由gcc-4.6.real(Ubuntu/Linaro4.6.1-9ubuntu3)4.6.1,64位编译)和在ubuntu11.10上运行3.2.2或3.2.1。现在,我可以使用以下命令连接PostgreSQLsupostgres输入密码我可以看到postgres=#我将以下详细信息放在我的config/database.yml中并执行“railsdb”,它工作正常。开发:adapter:postgresqlencoding:utf8reconnect:falsedat

  9. 映宇宙2022年营收63亿元:同比下降三成,毛利率提升4.3个百分点 - 2

    3月26日,映宇宙(HK:03700,即“映客”)发布截至2022年12月31日的2022年度业绩财务报告。财报显示,映宇宙2022年的总营收为63.19亿元,较2021年同期的91.76亿元下降31.1%。2022年,映宇宙的经营亏损为4698.7万元,2021年同期则为净利润4.57亿元;期内亏损(净亏损)为1.68亿元,2021年同期的净利润为4.33亿元;非国际财务报告准则经调整净利润为3.88亿元,2021年同期为4.82亿元,同比下降19.6%。 映宇宙在财报中表示,收入减少主要是由于行业竞争加剧,该集团对旗下产品采取更为谨慎的运营策略以应对市场变化。不过,映宇宙的毛利率则有所提升

  10. ruby-on-rails - Rails 2.3.11 DateTime BigDecimal 精度 - 2

    我目前有一个运行Ruby1.8.7和Rails2.3.2的RubyonRails项目我有一些从数据库中读取数据的单元测试,特别是两个连续项目的日期时间列,这两个项目应该相隔24小时。在一项测试中,我将项目2的日期时间设置为与项目1的日期时间相同。当我执行断言以确保两个值相等时,测试在rails2.3.2下工作正常。当我升级到rails2.3.11时,测试失败显示两次之间的差异将关闭并出现以下错误:expectedbutwas.这两个版本的rails中似乎存在浮点转换问题。如何解决float问题? 最佳答案 这也发生在我身上,我最终这

随机推荐