• c/c++经典面试题-part1


    1. 面向对象的程序设计思想是什么

      把数据结构和对数据结构进行操作的方法封装成一个个对象。

    2. 什么是类

      具有共性的的对象的集合,称之为类

    3. 对象都具有的两方面特征是什么?分别是什么含义

      • 对象都具有的特征是:静态特征和动态特征

      • 静态特征是指能描述对象的一些属性,动态特征是指对象表现出来的行为

    4. 在头文件中进行类的声明,在对应实现的文件中进行类的定义有什么意义?

      • 这样可以提高编译效率,因为分开之后只需要编译一次对应生成的.obj文件,再次应用该类的地方,这个类就不会再次编译,从而大大提高了效率(整个编译过程分为预编译、编译和汇编,最终生成可执行文件,其中在windows下生成 .obj文件,在linux下生成 .o文件,学名叫做二进制可重定位文件)
      • 隐藏了代码
    5. 在类的内部定义成员函数的函数体,这种函数会具备哪种属性?

      这种函数会自动为内联函数,这种函数在函数调用的地方在编译阶段都会进行代码替换。

    6. 成员函数通过什么来区分不同对象的成员数据?为什么它能够区分?

      通过this指针来区分,因为它指向的是对象的首地址。

    7. C++编译器自动为类产生的四个缺省函数是什么?

      默认构造函数(不带参数的构造函数),拷贝构造函数(用于对象间的赋值),析构函数,赋值函数(等号的赋值)。

    8. 拷贝构造函数在哪几种情况下会被调用?

      • 当类的一个对象去初始化该类的另一个对象的时候
      • 如果函数的形参是类的对象,调用函数进行形参和实参结合时
      • 如果函数的返回值是类的对象,函数调用完成返回时
    9. 构造函数与普通函数相比在形式上有什么不同?

      • 构造函数时类的一种特殊成员函数,一般情况下,它是专门用来初始化对象成员变量的
      • 构造函数名字必须与类名相同,它不具有任何类型,不返回任何值。
    10. 什么时候必须重写拷贝构造函数?

      当构造函数涉及到动态存储分配空间时,要写自己的拷贝构造函数,并且要深拷贝

    11. 构造函数的调用顺序是什么?

      1. 先调用基类的构造函数
      2. 按声明顺序初始化数据成员
      3. 最后调用自己的构造函数
    12. 哪几种情况必须用到初始化成员列表?

      类的成员是常量的成员初始化

      类的成员是对象的成员初始化,而该对象没有无参构造函数

      类的成员为引用时

    13. 什么是常对象(const 修饰的对象)

      常对象是指在任何场合都不能对成员的值进行修改的对象

    14. 静态函数存在的意义

      静态私有成员在类外不能被访问,可以通过类的静态成员函数来访问;

      当类的构造函数是私有的时,不想普通类那样实例化自己。只能通过静态成员函数来调用构造函数

    15. 在类外有什么拌饭可以访问类的非公有成员

      友元,继承,公有成员函数

  • 相关阅读:
    C# MVC 自定义ActionResult实现EXCEL下载
    如何让WEBAPI 能够进行跨越访问
    C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
    sC#进阶系列——WebApi 接口参数不再困惑:传参详解
    mybatis.net insert 返回主键
    [转]MySQL中timestamp数据类型的特点
    [转]java List和数组相互转换方法
    [转]Mybatis foreach 批量操作
    [转]让iframe自适应高度-真正解决
    [转]decorators.xml的用法
  • 原文地址:https://www.cnblogs.com/Chlik/p/13561810.html
Copyright © 2020-2023  润新知