C++基础知识点总结

1、new、malloc、delete、free的区别?

    new和delete会自动调用对象的构造与析构函数而malloc与free不会;new和delete是C++运算符,而malloc和free是C/C++标准库函数

2、delete 只会调用一次析构函数,而 delete[] 会调用每一个成员的析构函数。

3、如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。

4、重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。;重写:是指子类重新定义父类虚函数的方法。

5、C++ 不是类型安全的因为两个不同类型的指针之间可以强制转换(用 reinterpret cast) ,C# 是类型安全的。

6、struct和class的区别?

      struct 的成员默认是公有的,而类的成员默认是私有的。 struct 和 class 在其他方面是功能相当的。

7、 const 与 #define 相比,有何优点?

       const 作用:定义常量、修饰函数参数、修饰函数返回值三个作用。被 Const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。

  1).const 有类型安全检查。 2).const 常量能进行调试。

8 . 类成员函数的重载、覆盖和隐藏区别?
    1). 成员函数被重载的特征: 在同一个类中; 函数名字相同; 参数不同;  virtual 关键字可有可无。 
    2). 覆盖是指派生类函数覆盖基类函数,特征是: 分别位于派生类与基类; 函数名字相同; 参数相同; 基类函数必须有 virtual 关键字。 
    3). “隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下: 函数同名,参数不同。此时,不论有无 virtual 关键字,基类的函数将被隐藏(注意别与重载混淆)。 函数同名,参数相同,但是基类函数没有 virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值