• 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. 在类外有什么拌饭可以访问类的非公有成员

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

  • 相关阅读:
    钱多多软件制作04
    团队项目01应用场景
    HDU 4411 arrest
    HDU 4406 GPA
    HDU 3315 My Brute
    HDU 3667 Transportation
    HDU 2676 Matrix
    欧拉回路三水题 POJ 1041 POJ 2230 POJ 1386
    SPOJ 371 BOXES
    POJ 3422 Kaka's Matrix Travels
  • 原文地址:https://www.cnblogs.com/Chlik/p/13561810.html
Copyright © 2020-2023  润新知