
光鉴科技面试
发布日期:2021-05-09 00:19:59
浏览次数:22
分类:博客文章
本文共 1346 字,大约阅读时间需要 4 分钟。
1.C++11中的线程,生产者和消费者模式
2.多线程中同步的方法
互斥量,信号量,条件变量,读写锁;
3.设计模式中的简单工厂和工厂方法和抽象工厂
4.快速排序的原理,如何判定一个排序算法是稳定的
5.单例模式如何实现的
#includeusing namespace std;class CSingleton{private: CSingleton() //ctor should be private. { } static CSingleton * m_pInstance; //C++类中不可以定义自己类的对象,但是可以定义自己类的指针和引用.public: static CSingleton * GetInstance() { if (m_pInstance == nullptr) { m_pInstance = new CSingleton(); } return m_pInstance; }};int main(){ CSingleton * pcs = CSingleton::GetInstance(); CSingleton cs; //会报错,不允许其他方式生成该类的对象 return 0;}
上面写的有问题,会报错:
undefined reference to `CSingleton::m_pInstance' 因为static变量需要在类外初始化.为什么呢?因为静态变量不属于某个对象,而是属于类,如果放在类内初始化,则变成了这个对象的了,这就和之前的假设矛盾了. 因此需要改为:
#includeusing namespace std;class CSingleton{private: CSingleton() //ctor should be private. { } static CSingleton * m_pInstance; //C++类中不可以定义自己类的对象,但是可以定义自己类的指针和引用.public: static CSingleton * GetInstance();}; CSingleton * Singleton::m_pInstance = nullptr; //定义时不需要static了. Singleton * Singleton::GetInstance(); { if (m_pInstance == nullptr) { m_pInstance = new CSingleton(); } return m_pInstance; }int main(){ CSingleton * pcs = CSingleton::GetInstance(); CSingleton cs; //会报错,不允许其他方式生成该类的对象 return 0;}
发表评论
最新留言
不错!
[***.144.177.141]2025年05月03日 12时09分48秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
多线程,高并发
2023-01-23
linux(CENTOS)系统各个目录的作用详解
2023-01-23
科技前沿:React 组件之间通信的新模式与实践
2023-01-23
PHP实现异步定时多任务消息推送
2023-01-23
回溯法介绍
2023-01-23
非对称加密算法——SIDH加密算法的深度分析与应用探索
2023-01-23
有了Trae,人人都是程序员的时代来了
2023-01-23
公共课计算机总复习 核心知识点(1)
2023-01-23
STM8的C语言编程(14)--+PWM
2023-01-23
SpringBoot 学习笔记完整教程4
2023-01-23
【颠覆传统】Android锁屏界面全新重构:深度解析SystemUI横竖屏智能适配秘诀
2023-01-23
Servlet的三个基本方法
2023-01-23
反 TypeScript
2025-03-28
微信小程序wx.previewImage实现图片预览
2025-03-28
数据分析与处理方法
2025-03-28
分享下自己总结的Git常用命令
2023-01-23
AIGC在量子计算研究中的应用:算法优化提示词
2023-01-23
三种引流方法&案例分析
2023-01-23