一些特别有趣的C++面试题

一些特别有趣的C++面试题

编码文章call10242025-04-25 11:10:5714A+A-

一、根据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.

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4