4、类成员初始化方式:列表初始化和赋值初始化

赋值初始化通过在函数体内进行赋值,列表初始化,在构造函数后面加上冒号,使用初始化列表进行初始化。在函数体内进行初始化,是在所有的数据成员被分配内存空间后进行的,而列表初始化是在给数据成员分配内存空间的时候就进行初始化。两者的关系是先后的问题,一个是先分配,在初始化。另外一个是同时。

5、类如何实现只静态分配或者只动态分配

    1. 建立对象的方式:
      • 静态建立:静态建立一个对象,编译器为对象在栈空间上分配内存。
      • 动态建立:A *p = new  A(),动态建立,在堆上,使用new运算符为对象在堆空间中分配内存。然后调用构造函数构造对象。
    2. 因为对于前者,将new和delete设置为私有的,后者把构造函数和析构函数设置为protected属性。

6、什么情况会自动生成默认构造函数

  • 带有默认构造函数的类成员对象
  • 带有默认构造函数的基类
  • 带有虚函数的类或i这虚基类的类

7、抽象基类为什么不能创建对象

  • 抽象类:带有纯虚函数的类。
  • 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出,如果派生类没有对重写虚函数,那么派生类仍然是个抽象类,那么它仍然不能实例化对象。抽象类不能实例化对象。除非派生类实现了所有的纯虚函数。

8、多态

  • 相同对象收到不同信息或者不同对象收到相同信息采用不同的行为。c++支持两种多态性,编译型多态和运行时多态。
  • 编译型多态通过重载函数实现,运行时多态通过虚函数实现。
  • 静态多态(重载和模板)是在编译的时候,就确定调用函数的类型。动态多态(覆盖,虚函数)在运行的时候,才会决定调用哪个函数。运行基类指针指向派生类对象,并调用派生类的函数。

9、c实现c++的继承

#include <iostream>
using namespace std;
//struct默认public
//class默认private
struct A{
    virtual void fun(){
         cout << "A function" << endl;
    }
    int a;
};
struct B : A{
    virtual void fun(){
        cout << "B function" << endl;
    }
    int b;
};
//函数指针
typedef  void (*FUN)();
struct _A{
    FUN _fun;
    int _a;
};
//B类中包含A类对象。
struct _B{
    _A _a;
    int _b;
};
void _fA(){
    printf("_A:_fun\n");
}
void _fB(){
    printf("_B:_fun\n");
}
int main(){
    A a;
    B b;
    A* p1 = &a;
    p1->fun();//A function
    p1 = &b;
    p1->fun();//B function
    _A _a;
    _B _b;
    _a._fun = _fA;
    _b._a._fun = _fB;
    _A* p2 = &_a;
    p2->_fun();//_A:function
    p2 = (_A*)&_b;
    p2->_fun();//_B:function

    ;
}

10、c语言编译过程:预处理-->编译-->优化-->汇编-->链接-->可执行文件

c++面经积累<2>的更多相关文章

  1. 《Effective Java》学习笔记——积累和激励

    从一个实际案例说起 国庆长假前一个礼拜,老大给我分配了这么一个bug,就是打印出来的报表数量为整数的,有的带小数位,有的不带,毫无规律. 根据短短的两个多月的工作经验以及猜测,最终把范围缩小到以下这段 ...

  2. 【知识积累】try-catch-finally+return总结

    一.前言 对于找Java相关工作的读者而言,在笔试中肯定免不了遇到try-catch-finally + return的题型,需要面试这清楚返回值,这也是这篇博文产生的由来.本文将从字节码层面来解释为 ...

  3. 项目积累(三)CSS

    公司不是专门做网站的,偶尔会接到客户让修改前端,有时候和让头疼,自己浏览器兼容问题处理不好. 慢慢积累吧. 先贴出来一些前端代码吧,如下: <div class="test" ...

  4. 【知识积累】SBT+Scala+MySQL的Demo

    一.背景 由于项目需要,需要在Sbt+Scala项目中连接MySQL数据库.由于之前使用Maven+Java进行依赖管理偏多,在Sbt+Scala方面也在不断进行摸索,特此记录,作为小模块知识的积累. ...

  5. 积累一下SQL

    开篇先自我检讨一下,写了博客几年以来首次试过连续两个月没出过博文,有客观也有主观原因,但是最近这年里博文数量也越来越少,博文的质量也每况日下.希望自己一直能坚持下来,多写写博文,这月尽量多写几篇来弥补 ...

  6. Oracle----SQL语句积累 (Oracle 导入 dmp文件)

    Oracle----SQL语句积累 (Oracle 导入 dmp文件) Oracle SQL PL  导入dum文件 1.数据库DBA权限: 注意:这个是在cmd命令行中直接输入,不需要进入Oracl ...

  7. 记一些之前忘记积累的问题(fiddler 学习、XP系统不能上网、XP不能装fiddler、注册表快速找到)

    记一些之前忘记积累的问题: fiddler学习:http://www.cnblogs.com/kingwolf_JavaScript/archive/2012/11/07/FiddlerUI.html ...

  8. python积累

    python积累 一.逐渐积累 python逐渐积累 http://www.cnblogs.com/lx63blog/articles/6051526.html python积累_2 http://w ...

  9. 分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据

    分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据 今天开发找我,说数据库insert不进数据,叫我看一下 他发了一个截图给我 然后我登录上服务器,发现了可疑的地方,而且这个数据库之前 ...

  10. 【知识积累】BufferedImage类实现图片的切分

    一.引言 如何实现图片分割?若有园友用到这个模块,使用Java的BufferedImage类来实现,图片切分也可以作为一个小工具积累起来,以备不时之需. 二.代码清单 package com.lees ...

随机推荐

  1. 为 docker 中的 nginx 配置 https

    没有 https 加持的网站会逐渐地被浏览器标记为不安全的,所以为网站添加 https 已经变得刻不容缓.对于商业网站来说,花钱购买 SSL/TLS 证书并不是什么问题.但对于个人用户来说,如果能有免 ...

  2. -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义

    Java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 关键字 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有字母都为小写 用于定义数据类型的关键字 class ...

  3. SpringBoot整合系列-PageHelper分页插件

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9971043.html SpringBoot整合MyBatis分页插件PageHelper ...

  4. CAN总线学习记录之二:系统结构与帧结构

    CAN总线系统结构 CAN 控制器  接收控制单元中微处理器发出的数据,处理数据并传给 CAN 收发器 CAN 收发器 将数据传到总线 or 从总线接收数据给 CAN 控制器 CAN 数据传递终端 避 ...

  5. Odd-e CSD Course Day 3

    Mocking 在提到Mocking時,其實有提到為什麼我們需要 Mocking from: Odd-e CSD course 可以透過上圖來了解這個概念,當我們需要用到 Mock 時,其實是因為我們 ...

  6. 折腾Java设计模式之命令模式

    博客原文地址 折腾Java设计模式之命令模式 命令模式 wiki上的描述 Encapsulate a request as an object, thereby allowing for the pa ...

  7. 记录 FTPClient 超时处理的相关问题

    apache 有个开源库:commons-net,这个开源库中包括了各种基础的网络工具类,我使用了这个开源库中的 FTP 工具. 但碰到一些问题,并不是说是开源库的 bug,可能锅得算在产品头上吧,各 ...

  8. 谷歌浏览器扩展程序manifest.json参数详解

    { // Required "manifest_version": 2, // manifest编写规范版本,目前主流2 "name": "My Ex ...

  9. Flask框架搭建REST-API服务

    一.目的 为了能够将测试工具部署成RESTful-API服务,这样就能通过接口的方式提供统一测试工具服务,使用人员就不用构建application而产生的各种环境问题.使用问题. 适合人群:Pytho ...

  10. 坚定关于考研或者工作的决定:work

    转眼之间,我已经夸过了大二结束的节点,已经是一个准大三了: 在这个岔路口,首要的选择就是考研和工作的选择:我也有过犹豫要不要考研,最终还是放弃了考研的想法,从考研的利弊两个方面来谈:        首 ...