C++面试
C++常见面试问题
Everglow—
这个作者很懒,什么都没留下…
展开
-
C++面试题:手撕单例模式
什么是单例模式单例模式指在整个系统生命周期里,保证一个类只能产生一个实例,确保该类的唯一性。单例模式可以分为懒汉式和饿汉式,两者之间的区别在于创建实例的时间不同:懒汉式 只有当需要使用该实例时,才会去创建并使用实例(这种方式要考虑线程安全)饿汉式 系统一运行,就初始化创建实例,当需要时,直接调用即可。(本身就线程安全,没有多线程的问题)懒汉式(线程不安全)class Singleton{private: Singleton(){}private: static Singl原创 2021-04-02 12:22:15 · 553 阅读 · 2 评论 -
C++面试题:手撕String类
对于一个String类要自己写构造析构,避免浅拷贝等内存泄漏问题class String{public: String(const char* str = nullptr); //普通构造函数 String(const String& other); //拷贝构造函数 String& operator=(const String& other); //拷贝赋值函数 ~String(); //析构函数private: char* m_dat原创 2021-04-07 13:34:57 · 533 阅读 · 0 评论 -
C++面试题:手撕智能指针shared_ptr
template<class T>class SmartPtr{public: SmartPtr(T* ptr = NULL): _ptr(ptr), _pcount(new int(1)) {} SmartPtr(const SmartPtr& s): _ptr(s.ptr), _pcount(s._pcount){ *(_pcount)++; } SmartPtr<T>& operator=(const SmartPtr& s){ if原创 2021-03-28 23:23:21 · 1314 阅读 · 2 评论 -
笔试相关:OJ在线编程常见输入输出练习(C++)
cin将数据存放到temp里面,并且进行好了类型转换,也就是说如果temp是int,那么输入的数据就会转化成int,如果是strin类型,那么就将输入的数据转换成string类型然后存入到temp里面,cin>>输入的数据不包含空格和回车,空格和回车会存入到cin的缓冲区中,如果想拿到输入的空格和回车,通过cin.get()获得。A+B(1)要求输入两个正整数,求两个数的和输入:1 510 20输出:6 30int main() { int a, b; wh原创 2021-03-20 15:08:55 · 330 阅读 · 1 评论