当前位置: 首页 > news >正文

C++随笔

C++语言

🔰 一、C++语言常见问题

1. C++和C的主要区别是什么?

答:
C++是C的超集,主要区别包括:

  • 面向对象编程:C++支持类、继承、多态、封装,而C是过程式编程
  • 函数重载:C++支持同名函数的重载,C不支持
  • 引用:C++有引用类型,C只有指针
  • 命名空间:C++有namespace避免命名冲突,C没有
  • 类型检查:C++的类型检查更严格
  • 标准库:C++有STL等更丰富的库
  • 内存管理:C++有new/delete,C使用malloc/free
  • 函数参数:C++支持默认参数,C不支持
// C++特性示例
namespace MySpace {class Student {string name;public:void display() { cout << name << endl; }};
}void func(int a = 10);  // 默认参数
void func(double a);    // 函数重载

2. 什么是构造函数和析构函数?

解析:

  • 构造函数:创建对象时自动调用的特殊成员函数,用于初始化对象。与类同名,无返回值
  • 析构函数:对象销毁时自动调用的特殊成员函数,用于清理资源。函数名是~类名,无参数无返回值

特点:

  • 构造函数可以重载,析构函数不能重载
  • 都不能被继承(但派生类会调用基类的)
  • 构造函数可以有参数,析构函数不能有参数
  • 编译器会提供默认的构造函数和析构函数
class MyClass {int* data;
public:MyClass() { data = new int[10]; }      // 构造函数~MyClass() { delete[] data; }           // 析构函数
};

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

解析:
引用是已存在变量的别名,主要区别:

特性引用指针
是否可为空不能为NULL,必须初始化可以为NULL
是否可重新赋值不能重新绑定其他对象可以指向其他对象
是否有独立内存没有独立内存地址有独立内存地址
语法使用使用.访问成员使用->访问成员
算术运算不支持支持指针运算
安全性相对安全可能产生野指针
int a = 10;
int& ref = a;    // 引用必须初始化
int* ptr = &a;   // 指针

4. 什么是函数重载?重载的规则是什么?

解析:
函数重载是指在同一作用域内,可以有多个同名函数,但参数列表必须不同。

重载规则:

  • 函数名必须相同
  • 参数个数、类型或顺序至少有一个不同
  • 仅返回值不同不能构成重载
  • const修饰符可以参与重载(成员函数)
  • 默认参数可能导致重载二义性
void print(int a);
void print(double a
http://www.dtcms.com/a/276827.html

相关文章:

  • iOS高级开发工程师面试——关于优化
  • Datawhale 2025 AI夏令营 MCP Server Task2
  • 一文认识并学会c++模板(初阶)
  • 基于无人机 RTK 和 yolov8 的目标定位算法
  • ESP32使用freertos更新lvgl控件内容
  • 【时间之外】尘封的智能套件复活记
  • 数据结构与算法之美:跳表
  • 【CMake】CMake构建项目入门
  • 数据标注:AI时代的黄金矿场如何规避法律暗礁
  • C语言习题三
  • HCIA--- OSPF动态路由实验
  • 基于springboot+Vue的二手物品交易的设计与实现(免费分享)
  • 《棒垒球知识科普》技巧赛规则·棒球1号位
  • houdini 用 vellum 制作一个最简单的布料
  • Windows环境下JS计时器精度差异揭秘
  • PyQt5布局管理:QHBoxLayout和QVBoxLayout详解
  • cmd命令之for循环
  • 深入理解-ConcurrentHashMap:JDK-1-7-与-1-8-的演进与实现原理
  • 管理端口: 一个简单的锤子架子
  • JavaSE常用类
  • 《Spring 中上下文传递的那些事儿》Part 11:上下文传递最佳实践总结与架构演进方向
  • Linux反弹shell的几种方式
  • 【leetcode】709. 转换成小写字母
  • 直播录屏技术揭秘:以抖音直播录屏为例
  • 【嘉立创】四层板设计
  • 如何搭建一个高质量的开放接口平台
  • 数据结构与算法之美:线索二叉树
  • 【Scratch】从入门到放弃(四):指令大全-九大类之事件、控制、侦测
  • 解释全连接层的“参数数量”和“计算过程”,保证像看动画片一样直观~
  • c++反射实现