当前位置: 代码迷 >> 综合 >> C++知识点总结
  详细解决方案

C++知识点总结

热度:76   发布时间:2024-02-05 20:52:07.0

1.c和c++的区别是什么?

 

    程序 = 数据结构+算法.c语言是面向过程的,面向过程就是分析出解决问题的步骤,然后用函数将其实现,使用时依次调用.

    程序= 对象+消息.c++是面向对象的,c++面向对象是将构成问题的事物分解成各个对象,每个对象完成在解决整个问题中的行为.主要特点是类,封装,继承,多态等。面向对象的语言具有更好的可扩展性。

 

 2.const有什么用途?

 

    (1)定义一个常量,即该数据只读,发生更改会报错

    (2)修饰函数返回值和函数的参数,增加程序的健壮性

    (3)修饰函数定义体.(也就是说这个函数为一个只读函数,该函数不会修改任何数据成员的值)

     例如: void getDescription() const;

    被const修饰过的函数能被const和非const对象调用,但是const对象只能调用被const修饰过的函数定义体.

 

3.指针和引用的区别是是什么?

    (1)引用是变量的一个别名,引用与他所引用的变量实际上代表同一个存储单元

      (2) 引用相比指针对内存的占用少,节省内存空间。

    (3)引用是一个绑定的关系,绑定关系是永久的,而指针可以改变

    (4)常引用的值不能被修改,主要用途是函数的形参以及函数的返回引用

 

4.malloc/free 和 new/delete的区别是什么?或者说为什么有了malloc/free 还需要new/delete?

        (1)new 自动计算要分配的存储区的大小,而malloc需要给出所需要分配的存储区的大小.且new会自动返回正确的指针类型。

      (2)new 可以对分配的存储空间进行初始化,也可以创建对象并对对象进行初始化(创建是调用构造函数,释放时调用析构函数).

      (3)new/delete可以重载,重载一个与类相关的new/delete运算符.

5.数据封装、继承、多态

    数据封装:实现了信息隐蔽性,将数据和数据有关的操作集合封装到一起,用户不必知道其实现细节,只需要知道功能即可。

     继承: 解决了软件的可重用性和可扩展性

     多态性:一个名字或符号具有多种含义,通过重载来实现的. 例如:c++中存在同名函数,根据参数不同自动匹配.

 

未完待续.................

 

    

  相关解决方案