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. Why DDD and layered architecture

    As a developer, you may think that your job is to write code. However, Software development is not a ...

  2. SmartSql For Asp.Net Core 最佳实践

    常规操作 安装 SmartSql Install-Package SmartSql 安装 SmartSql.DIExtension Install-Package SmartSql.DIExtensi ...

  3. 用meterpreter实现跳板机

      meterpreter跳板机 背景:渗透测试者A拿到了B主机的控制权,但没有拿到ssh密码(不能打ssh隧道).现需横向移动渗透内网主机C,为了避免动作过大不便直接在B上对C进行渗透,其中C不能出 ...

  4. [转]koa-router使用指南

    更多参考:https://www.npmjs.com/package/koa-router 本文转自:https://blog.csdn.net/luchuanqi67/article/details ...

  5. [心得] 如何利用liquibase進行資料庫版本控制 - 實際練習

    透過上一篇的基本觀念介紹,希望大家應該有一點點感覺了! 這篇我們就來做個簡單的版本演練,加深印象吧! 我使用的環境如下 System : Windows 7 Database : SQL Server ...

  6. .NET Core Cache [MemoryCache]

    参考资料:long0801的博客.MemoryCache微软官方文档 添加对Microsoft.Extensions.Caching.Memory命名空间的引用,它提供了.NET Core默认实现的M ...

  7. 聊聊 API Gateway 和 Netflix Zuul

    最近参与了公司 API Gateway 的搭建工作,技术选型是 Netflix Zuul,主要聊一聊其中的一些心得和体会. 本文主要是介绍使用 Zuul 且在不强制使用其他 Neflix OSS 组件 ...

  8. js知识点总结

    组成 ECMAscript 基础语法     变量 数据类型 运算符 数组 函数 对象BOM 浏览器对象模型     window对象(获取浏览器宽高)     history对象     locat ...

  9. 快速傅里叶变换(FFT)详解

    本文只讨论FFT在信息学奥赛中的应用 文中内容均为个人理解,如有错误请指出,不胜感激 前言 先解释几个比较容易混淆的缩写吧 DFT:离散傅里叶变换—>$O(n^2)$计算多项式乘法 FFT:快速 ...

  10. loj#6073. 「2017 山东一轮集训 Day5」距离(费用流)

    题意 题目链接 Sol 我们可以把图行列拆开,同时对于行/列拆成很多个联通块,然后考虑每个点所在的行联通块/列联通块的贡献. 可以这样建边 从S向每个行联通块连联通块大小条边,每条边的容量为1,费用为 ...