C++
清崎教练
这个作者很懒,什么都没留下…
展开
-
inline关键字,内联函数
引入inline:在 c/c++ 中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了 inline 修饰符,表示为内联函数。栈空间就是指放置程序的局部数据(也就是函数内数据)的内存空间。在系统下,栈空间是有限的,假如频繁大量的使用就会造成因栈空间不足而导致程序出错的问题缺点:(1)内联是以代码膨胀复制为代价,仅仅省去了函数调用的开销,从而提高函数的执行效率。(2)内联函数内部尽量不要有循环之类的,这样导致效率会降低,一般只用在简单函数上类中:定义在类中的成员函数默认原创 2021-04-28 22:22:03 · 248 阅读 · 0 评论 -
三种继承
对于这三种方式继承的派生类来说: 都能访问基类的public, protected 成员;public 的方式继承到派生类,这些成员的权限和在基类里的权限保持一致;protected方式继承到派生类,成员的权限都变为protected;private 方式继承到派生类,成员的权限都变为private;对于三种方式派生类的对象来说: 只有public的方式继承后,派生来的对象只能访问基类的public成员,protected和private方式继承,派生类的对象都不可以访问父类的成员。...原创 2021-04-13 15:42:43 · 107 阅读 · 0 评论 -
空类
空类里有哪些函数class Empty{public:Empty(); // 默认构造函数//Empty( const Empty& ); // 拷贝构造函数//~Empty(); // 析构函数//Empty& operator=( const Empty& ); // 默认赋值运算符Empty* operator&(); // 取址运算符const Empty* operator&() const; // 取址运算符 const};但要需要原创 2021-04-13 14:58:23 · 226 阅读 · 0 评论 -
C++中的 移动构造函数与拷贝构造函数
移动构造函数是c++11的新特性,移动构造函数传入的参数是一个右值 用&&标出。一般来说左值可以通过使用std:move方法强制转换为右值。首先讲讲拷贝构造函数:拷贝构造函数是先将传入的参数对象进行一次深拷贝,再传给新对象。这就会有一次拷贝对象的开销,并且进行了深拷贝,就需要给对象分配地址空间。而移动构造函数就是为了解决这个拷贝开销而产生的。移动构造函数首先将传递参数的内存地址空间接管,然后将内部所有指针设置为nullptr,并且在原地址上进行新对象的构造,最后调用原对象的的析构函数,这原创 2021-04-13 14:20:00 · 1306 阅读 · 0 评论 -
C++ split
C++没有split APIvector<string> split(string str, char splitter){ vector<std::string> res; string s; stringstream ss(str); //头文件 #include <sstream> while (getline(ss, s, splitter)) { res.push_back(s); }原创 2021-04-02 22:49:38 · 1727 阅读 · 0 评论