当前位置: 首页 > news >正文

c++面试题总结

内联函数与宏定义的区别?

  • 内联函数在执行是可调试,而宏定义不可以
  • 编译器会对内联函数做类型检查 宏不可以
  • 内联函数可以访问类的成员变量
  • 在类中声明同时定义成员函数自动转换成内联函数

c++中一个空类会默认产生那些类成员函数?

#include<iostream>    
using namespace std;    
class Empty{    
    public:    
        Empty();  //默认构造函数    
        Empty(const Empty&); //默认拷贝构造函数    
        ~Empty();  //默认析构函数    
        Empty&operator=(const Empty&); //默认赋值运算符    
        Empty*operator&();  //默认取址运算符    
        const Empty*operator&()const; //默认const取址运算                           
};                                                                             
int main()                                                    
{                                                             
                                                              
    return 0;                                                 
}  

下列代码中的输出语句输出0吗?为什么?

#include<iostream>    
using namespace std;    
struct CLS{    
    int m_i;    
    CLS(int i):m_i(i){}    
    CLS(){CLS(0);} //不会
                    //在默认构造函数内部调用带参数的构造函数是递归行为,    
                    // 程序仅执行函数调用,而不执行其后的初期化,    
                    // 只有生成对象时,初始化表达式才会随相应的构造函数一起调用      
};    
int main()                                 
{                                          
    CLS obj;                               
    cout<<obj.m_i<<endl;                   
    return 0;                              
}

一个类A没有任何数据成员和成员函数时,sizeof(A)的值是什么?如果不是0,编译器为什莫没有让它为0.

sizeof(A)大小为1,因为类是是用来定义对像的,每个对象的存储空间中存储相应的数据成员值,通常第一个数据成员的地址为对象地址.如果长度为0,无法实例化空类的对象,为此编译器添加一个字节的数据成员.

为什么static数据成员一定要在类外初始化?

静态成员属于整个类,不属于某个对象,如果在类的内部定义,在建立多个对象时会导致多次定义,

静态数据成员的特点

静态数据成员属于类不属于对象,无论定义多少个对象,静态数据成员只存在一份

静态数据成员必须在类外进行初始化

静态数据成员存储在全局数据区,为本类的所有对象共享,不属于特定的类对象。 

相关文章:

  • qlib因子分析之alphalens源码解读
  • springboot企业人力资源管理系统毕业设计源码291816
  • cadence SPB17.4 - allegro - 手工放置过孔
  • ElasticSearch (ES)学习之路(六)Springboot2.3.1整合ES 7.6.1
  • 人类历史上第一个人工神经元模型为mp模型有何不提出
  • 独角兽资深架构师用7大部分13章节,彻底讲透SpringBoot生态体系
  • 【web-攻击web服务器】(13.1)Web服务器配置缺陷
  • 人工神经元网络基本构成,人工神经网络主要有
  • elasticsearch 相似度计算
  • linux驱动开发:中断和时间管理
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • eclipse使用maven教程
  • 学生成绩查询(查最大值,最小值,平均值,升序,降序)
  • ElasticSearch 批量查询
  • Linux 系统调用的来龙去脉 (上)
  • 【React系列】如何构建React应用程序
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • GraphQL学习过程应该是这样的
  • iOS编译提示和导航提示
  • opencv python Meanshift 和 Camshift
  • python_bomb----数据类型总结
  • vue 配置sass、scss全局变量
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 分布式事物理论与实践
  • 搞机器学习要哪些技能
  • 开发基于以太坊智能合约的DApp
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端面试题总结
  • 前嗅ForeSpider教程:创建模板
  • 什么是Javascript函数节流?
  • 思维导图—你不知道的JavaScript中卷
  • 消息队列系列二(IOT中消息队列的应用)
  • 携程小程序初体验
  • 一个JAVA程序员成长之路分享
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 走向全栈之MongoDB的使用
  • 数据可视化之下发图实践
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (Oracle)SQL优化技巧(一):分页查询
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (独孤九剑)--文件系统
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (算法)求1到1亿间的质数或素数
  • (一)Linux+Windows下安装ffmpeg
  • (原)本想说脏话,奈何已放下
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转)原始图像数据和PDF中的图像数据
  • **CI中自动类加载的用法总结
  • .Net 高效开发之不可错过的实用工具
  • .NET 设计一套高性能的弱事件机制
  • .NET业务框架的构建
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解