zoukankan      html  css  js  c++  java
  • C++ part3

    函数和const

    references:
    C++中const用于函数重载

    有些情况可以重载,有些不行,具体看↑。

    隐式类型转换

    references:
    nowcoder

    对于内置类型,低精度的变量给高精度变量赋值会发生隐式类型转换。

    对于只存在单个参数的构造函数的对象构造来说(并不是指构造函数只能有一个形参,而是它可以有多个形参,但那些形参都是有默认实参的),函数调用可以直接使用该参数传入,编译器会自动调用其构造函数生成临时对象

    class A{
    A(int f, int d = 0){}
    };
    ...
    A a = 10;

    用explicit可以防止隐式类型转换

    C++函数栈空间的最大值

    和os有关,自己查。

    extern“C”

    references:
    extern "c"用法解析

    extern"C"的使用

    加上extern "C"后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。

    比如说你用C 开发了一个DLL 库,为了能够让C ++语言也能够调用你的DLL输出(Export)的函数,你需要用extern "C"来强制编译器不要修改你的函数名。

    extern "C"{
    extern void f();
    }
    int main(){
    f();
    return 0;
    }

    new/delete与malloc/free的区别

    RTTI(运行阶段类型识别)

    references:
    C++ 中的RTTI机制详解

    C++ primer
    Runtime Type Information缩写。
    1、typeid函数和type_info类
    使用typeid函数来获得对象的类型。typeid会返回一个type_info类的对象,调用这个对象的name()函数可知道具体类型(包括自定义类)。type_info类中重载了==和!=比较两个对象的类型是否相等。当类中不存在虚函数时,typeid是编译时期的事情,也就是静态类型;当类中存在虚函数时,typeid是运行时期的事情,也就是动态类型。 也就是说当类中有虚函数时,基类指针指向的派生类对象会被认为是派生类。

    2、dynamic_cast
    需要虚函数,失败返回NULL

    C语言参数压栈顺序

    从右到左

    C语言是怎么进行函数调用的

    references:
    C/C++ 函数调用栈过程

    C&C++函数调用过程
    一篇文章了解C语言函数调用栈——程序员进阶必备

    1、参数入栈
    2、返回地址入栈
    3、函数栈帧开辟
    4、函数栈帧回退

    C++如何处理返回值

    references:
    nowcoder

    生成一个临时变量,把它的引用作为函数参数传入函数内。

    C++中拷贝赋值函数的形参能否进行值传递?

    不能。如果是这种情况下,调用拷贝构造函数的时候,首先要将实参传递给形参,这个传递的时候又要调用拷贝构造函数。。如此循环,无法完成拷贝,栈也会满。

    select(不会)

    fork,wait,exec函数

    references:
    进程控制——fork-and-exec、system、wait

    fork从父进程返回子进程的pid,从子进程返回0。

    调用了wait的父进程将会发生阻塞,直到有子进程状态改变,执行成功返回0,错误返回-1。

    exec函数执行成功则子进程从新的程序开始运行,无返回值,执行失败返回-1。
    exec的函数有很多个,它们分别是execve、execl、execv、execle、execlp、execvp,都是加载函数。其中execve是系统函数。

  • 相关阅读:
    基于Token的WEB后台认证机制
    导出和导入Docker容器
    进入Docker容器
    介绍Docker容器
    Docker镜像的实现原理
    Docker 移除镜像
    存出和载入Docker镜像
    Docker 创建镜像
    Docker 列出镜像
    Docker如何获取镜像
  • 原文地址:https://www.cnblogs.com/KirinSB/p/12431399.html
Copyright © 2011-2022 走看看