博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++ 实践总结
阅读量:5131 次
发布时间:2019-06-13

本文共 1115 字,大约阅读时间需要 3 分钟。


  1. 对于一个应用程序而言,静态链接库可能被载入多次,而动态链接库仅仅会被载入一次。

  2. Gameloft面试之错误一

Event:

面试官说例如以下程序是能够链接通过的.

class Base

{

Public:

    Base(void)

    {

      this-> initialize();

}

     virtual void initialize(void) = 0; 

};

 

class Derived : public Base

{

Public:

      virtualvoid initialize(void)

      {

      }

};

 

Base* obj = new Derived;

 

In fact:

  链接根本不能通过,原因:虚函数表是在构造函数调用完毕之后才完毕初始化的。

 

:

虚拟函数表在对象创建完毕后才被初始化,而在构造基类构造函数去掉用虚函数时是无法调用到派生类实现接口的:例如以下样例链接定会失败(不管gcc还是vs编译器)(总结牢记自己曾今的研究):

 

  1. Gameloft面试之错二

Event:

面试官说例如以下写法是可通过编译的:

class A

{

     const char* func(const char*const str) const

     {

        char* temp = str;

     }

};

In fact:

  编译时不能通过的: “const char*”类型的值不能用于初始化”char*”类型实体

:

   应坚定地相信自己自己通过科学做出的推断

 

  1. Gameloft面试之错三

Event:

    面试官说例如以下写法大多数编译器不支持

void(ClassName::  *px)(void);

 

  In fact:

    实践证明,VSGCC编译器均支持该写法

 

  Summary

    该写法并未违背C++标准,应当被支持,至于除VS,GCC之外的编译器未曾了解.

 

  1. 数组指针的初始化及销毁(new/delete)操作:(gameloft面试后思考)

    int (*parr)[10] = (int(*)[10])( new int[10] );

    delete [] parr;

     

  2. 在多继承的时候,dynamic_cast返回nullptr的情况:

    现有2个基类: base1base2

    二级基类:    base3同一时候继承与base1, base2

    对于对于子类derived, 假设子类是非public继承与base3

    但用基类base2指针保存derived对象时,dynamic_cast转换基类base2指针

    base1指针,会失败返回nullptr

     

 

转载于:https://www.cnblogs.com/zfyouxi/p/3762309.html

你可能感兴趣的文章
74HC164应用
查看>>
变量声明和定义的关系
查看>>
Wpf 之Canvas介绍
查看>>
linux history
查看>>
jQuery on(),live(),trigger()
查看>>
Python2.7 urlparse
查看>>
sencha touch在华为emotion ui 2.0自带浏览器中圆角溢出的bug
查看>>
【架构】Linux的架构(architecture)
查看>>
ASM 图解
查看>>
Date Picker控件:
查看>>
你的第一个Django程序
查看>>
grafana授权公司内部邮箱登录 ldap配置
查看>>
treegrid.bootstrap使用说明
查看>>
[Docker]Docker拉取,上传镜像到Harbor仓库
查看>>
javascript 浏览器类型检测
查看>>
nginx 不带www到www域名的重定向
查看>>
记录:Android中StackOverflow的问题
查看>>
导航,头部,CSS基础
查看>>
[草稿]挂载新硬盘
查看>>
[USACO 2017 Feb Gold] Tutorial
查看>>