zoukankan      html  css  js  c++  java
  • c++爱问的面试问题

    1.static_cast,dynamic_cast,reinterpret_cast,const_cast四种转换。

    2.const行为

    3.malloc/free, new/delete差额

    4.虚拟功能,虚拟继承。多重继承。多重虚拟继承。

    5.深拷贝。浅拷贝。

    6.类成员初始化顺序是按声明顺序。

    7.virtual函数系动态绑定。而缺省參数静绑定的

    class A{
    public:
    virtual void func(int a =10){cout<<"A  "<<a<<endl;}
    };


    class B:public A{
    virtual void func(int a =20){cout<<"B  "<<a<<endl;}
    };

    A* p = new B;
    p->func();

    输出:B   10

    8.与(&),或(|)。异或(^)在算法中的运用。

    9.内联函数什么时候不展开

         在内联函数内不同意用循环语句和开关语句。

     假设内联函数有这些语句。则编译将该函数视同普通函数那样产生函数调用代码,递归函数(自己调用自己的函数)是不能被用来做内联函数的。内联函数仅仅适合于仅仅有1~5行的小函数。对一个含有很多语句的大函数,函数调用和返回的开销相对来说微不足道,所以也没有必要用内联函数实现.

    10 .int a[] = {1,2,3,4,5};

         int *ptr =(int*)(&a+1);

         printf("%d %d",*(a+1),*(ptr-1));

         答案 2 5

         数组名本身就是指针,再加上个&,就变成双指针了,这里的双指针就是指二维数组。加1,就是数组总体加一行。

    11.int *p1=new int[10];该语句给指针p1分配内存,没有对指针初始化,

         int *p2=new int[10]();该语句给指针p2分配内存,并初始化指针.

    12.main函数之前会运行全局对象的构造函数。

    13.

    char **storm = (char**)(new char[n]);// error
    应该改成 char **storm = new char*[n]);

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    济南学习D1T5__HEAP
    快速计算C(n,r)
    快速阶乘算法
    济南学习D2T1__折纸带
    济南学习D3T1__线性筛和阶乘质因数分解
    栈与队列:栈的链式储存结构
    线性表应用:建立一个随机数 链表获得中间结点
    栈与队列应用:二进制转十进制 八进制 十六进制(栈)
    线性表:单链表基本操作代码
    线性表应用:魔术师发牌与拉丁(Latin)方阵(循环链表)
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4824194.html
Copyright © 2011-2022 走看看