一些特别有趣的C++面试题
一、根据C++11标准,以下程序输出什么?
#include
解析: main函数的第一行,d1被初始化。此时虚基类A的构造函数最先执行,之后B,C,按D的继承顺序从左到右依次调用B的构造函数,C的构造函数,最后才调用D自己的构造函数。
main函数的第二行,d2被初始化。此时因为D类显示定义了拷贝构造函数,所以d2不会去调用父类的拷贝构造函数,所以答案为ABCd。
二、根据C++11的新标准,以下程序输出什么?
#include
答案: 112212
解析: 首先要明确一点,T&&在模板函数中并不一定是右值引用,它取决于实例化它的类型。如果用一个左值实例化,那个它会成为一个左值,如果用一个右值实例化变量,那么它会是一个右值。而对于x来说,不管他是左值还是右值,在函数内都是左值,所以main函数的第一行输出11,move函数返回变量的右值,所以第二行输出22,forward函数保持变量的原来类型,所以第三行输出12.
上一篇:c++学习之继承篇
下一篇:C++ 合成默认构造函数的真相
相关文章
- Spring Boot中对接Twilio以实现发送验证码和验证短信码
- Spring Boot 3.5:这次更新让你连配置都不用写了,惊不惊喜?
- Spring Boot+Pinot实战:毫秒级实时竞价系统构建
- SpringBoot敏感配置项加密与解密实战
- SpringBoot 注解最全详解,建议收藏!
- Spring Boot 常用注解大全:从入门到进阶
- SpringBoot启动之谜:@SpringBootApplication如何让配置化繁为简
- Springboot集成Kafka原理_spring集成kafka的原理
- Spring Boot中@Data注解的深度解析与实战应用
- 大佬用1000字就把SpringBoot的配置文件讲的明明白白!
