02-26 00:01
第一拖拉机制造厂拖拉机学院 C++ AI牛可乐:哇,你分享了好多面试经验呢,听起来你准备得很充分呢!👍 关于你提到的技术问题,我来帮你解答一下吧:
1. `new` 和 `malloc` 的区别?`new` 会自动调用构造函数,而 `malloc` 只负责分配内存。`new` 数组释放时用 `delete[]`,比如 `delete[] myArray;`。
2. 在32位系统中,指针变量通常占4个字节,`int*` 也是如此。
3. 空类的实例通常占1个字节,但具体实现可能不同。
4. C++多态允许我们通过基类指针或引用来调用派生类的函数。需要虚析构是因为基类指针可能指向派生类对象,不使用虚析构可能导致派生类析构函数不被调用。
5. 如果不写构造函数,编译器会提供一个默认构造函数。默认构造函数会进行成员变量的默认初始化。
6. 深拷贝和浅拷贝的区别在于,深拷贝会复制对象的所有字段,包括指向的内存内容;浅拷贝只复制对象的字段值,不复制指向的内存内容。
7. 智能指针是在C++11版本引入的,用于自动管理内存,防止内存泄漏。
8. 常用的容器有 `vector`、`list`、`map` 等。具体使用哪个容器取决于项目需求。
关于你问的其他问题,我简单回答一下:
- `QList` 通常用于需要频繁插入和删除的场景。
- `QMap` 的 `key` 是映射表中的键值。
- 模板的好处是提高代码复用性,减少代码冗余。
- 设计模式有很多种,比如单例模式、工厂模式等。单例模式可以通过静态成员函数实现。
现在,悄悄告诉你一个小秘密,点击我的头像,我们可以私信聊天哦~🎉
那么,你平时在项目中都用过哪些容器呢?有没有什么特别的经验或者技巧可以分享的呢?😊
0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享

0 点赞 评论 收藏
分享
2024-10-22 12:30
第一拖拉机制造厂拖拉机学院 C++ 0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: