C++语言基础

1.1.1 简述下C++语言的特点

参考回答

  1. C++在C语言基础上引入了面对对象的机制,同时也兼容C语言

  2. C++有三大特性(1)封装。(2)继承。(3)多态;

  3. C++语言编写出的程序结构清晰、易于扩充,程序可读性好

  4. C++生成的代码质量高,运行效率高,仅比汇编语言慢10%~20%;

  5. C++更加安全,增加了const常量、引用、四类cast转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)、智能指针、try—catch等等;

  6. C++可复用性高,C++引入了模板的概念,后面在此基础上,实现了方便开发的标准模板库STL(Standard Template Library)。

  7. 同时,C++是不断在发展的语言。C++后续版本更是发展了不少新特性,如C++11中引入了nullptr、auto变量、Lambda匿名函数、右值引用、智能指针。

1.1.2 说说C语言和C++的区别

参考回答

  1. C语言是C++的子集,C++可以很好兼容C语言。但是C++又有很多新特性,如引用、智能指针、auto变量等。

  2. C++是面对对象的编程语言;C语言是面对过程的编程语言。

  3. C语言有一些不安全的语言特性,如指针使用的潜在危险、强制转换的不确定性、内存泄露等。而C++对此增加了不少新特性来改善安全性,如const常量、引用、cast转换、智能指针、try—catch等等;

  4. C++可复用性高,C++引入了模板的概念,后面在此基础上,实现了方便开发的标准模板库STL。C++的STL库相对于C语言的函数库更灵活、更通用

1.1.3 说说 C++中 struct 和 class 的区别

参考回答

  1. struct 一般用于描述一个数据结构集合,而 class 是对一个对象数据的封装;

  2. struct 中默认的访问控制权限是 public 的,而 class 中默认的访问控制权限是 private 的,例如:

    struct A{  int iNum; // 默认访问控制权限是 public } class B{  int iNum; // 默认访问控制权限是 private }
  3. 在继承关系中,struct 默认是公有继承,而 class 是私有继承;

  4. class 关键字可以用于定义模板参数,就像 typename,而 struct 不能用于定义模板参数,例如:

    template<typename T, typename Y> // 可以把typename 换成 class  int Func(const T& t, const Y& y) {      //TODO  }

答案解析

  1. C++ 中的 struct 是对 C 中的 struct 进行了扩充,它们在声明时的区别如下:

    C C++
    成员函数 不能有 可以
    静态成员 不能有 可以
    访问控制 默认public,不能修改 public/private/protected
    继承关系 不可以继承 可从类或者其他结构体继承
    初始化 不能直接初始化数据成员 可以
  2. 使用时的区别:C 中使用结构体需要加上 struct 关键字,或者对结构体使用 typedef 取别名,而 C++ 中可以省略 struct 关键字直接使用,例如:

    struct Student{  int  iAgeNum;  string strName; } typedef struct Student Student2; //C中取别名  struct Student stu1; // C 中正常使用 Student2 stu2;   // C 中通过取别名的使用 Student stu3;   // C++ 中使用

1.1.4 说说include头文件的顺序以及双引号""和尖括号<>的区别

参考回答

  1. 区别:

    (1)尖括号<>的头文件是系统文件,双引号""的头文件是自定义文件

    (2)编译器预处理阶段查找头文件的路径不一样。

  2. 查找路径:

    (1)使用尖括号<>的头文件的查找路径:编译器设置的头文件路径-->系统变量。

    (2)使用双引号""的头文件的查找路径:当前头文件目录-->编译器设置的头文件路径-->系统变量。

1.1.5 说说C++结构体和C结构体的区别

参考回答

区别:

(1)C的结构体内不允许有函数存在,C++允许有内部成员函数,且允许该函数是虚函数。

(2)C的结构体对内部成员变量的访问权限只能是public,而C++允许public,protected,private三种。

(3)C语言的结构体是不可以继承的,C++的结构体是可以从其他的结构体或者类继承过来的。

(4)C 中使用结构体需要加上 struct 关键字,或者对结构体使用 typedef 取别名,而 C++ 中可以省略 struct 关键字直接使用。

答案解析

  1. C++ 中的 struct 是对 C 中的 struct 进行了扩充,它们在声明时的区别如下:

    C C++
    成员函数 不能有 可以
    静态成员 不能有 可以
    访问控制 默认public,不能修改 public/private/protected
    继承关系 不可以继承 可从类或者其他结构体继承
    初始化 不能直接初始化数据成员 可以
  2. 使用时的区别:C 中使用结构体需要加上 struct 关键字,或者对结构体使用 typedef 取别名,而 C++ 中可以省略 struct 关键字直接使用,例如:

    struct Student{  int  iAgeNum;  string strName; } typedef struct Student Student2; //C中取别名  struct Student stu1; // C 中正常使用 Student2 stu2;   // C 中通过取别名的使用 Student stu3;   // C++ 中使用

1.1.6 导入C函数的关键字是什么,C++编译时和C有什么不同?

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值