- Google代码规范
Google 的 C++ 代码规范_freeking101的博客-CSDN博客_c++代码规范 -
C++中类成员函数作为回调函数
方法:类里包含自己的对象,回调函数为static
在C++的类中使用类成员函数作为回调函数_清楚xc的博客-CSDN博客_c++ 类中的回调函数
C++中类成员函数作为回调函数_this_CAPSLOCK 的专栏-CSDN博客_类成员函数作为回调函数 -
智能指针循环引用weak_ptr
c++循环引用_chm880910的专栏-CSDN博客_循环引用c++ -
STL基础
C++基础-string截取、替换、查找子串函数
C++ STL list的初始化、添加、遍历、插入、删除、查找、排序、释放
C++ STL Map的创建、删除、插入、更新、遍历
C++三种容器:list、vector和deque的区别 -
覆盖、隐藏
C++中的覆盖与隐藏(详细讲解) - 么么打123 - 博客园
覆盖:有virtual且一模一样
隐藏:上面的条件不完全具备 -
array、vector
https://codeday.me/bug/20170403/8451.html -
依赖倒置原则:父类实例化子类的对象,外部统一调父类的接口
为什么一个对象可以用父类声明,却用子类实例化_Like a lunatic-CSDN博客
如何通过父类引用“调用”子类所独有的方法(向上转型意义) -
任何类一定要定义拷贝构造函数,特别是有指针成员存在的情况
类一定要定义拷贝构造函数,特别是在类成员含有指针的情况(不论指针是何种类型),安全!!!_lujiandong1的专栏-CSDN博客
private:
People(const People &);
People& operator =(const People &); - 使用拷贝,赋值的场景
C++拷贝构造、赋值构造详解_十分残念的博客-CSDN博客_c++ 赋值构造
A c = f(); //此时不调用任何构造函数
12. 设计模式
第26章 状态模式 · 设计模式之禅(第2版) · 看云
14.basic_string::_S_construct null not valid
构造函数里面初始化string不能用0,或空指针
关于basic_string::_S_construct null not valid的解决方案_一条菜狗的博客-CSDN博客
15.读写文件
char不能取消
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
// char ch[12] = {0};
// ifstream i_file("file.txt");
// if (i_file.fail()) {
// cout << "打开文件错误!" << endl;
// exit(0);
// }
// i_file.read(ch, 12);
// cout << ch << endl;
/* read entire file */
ifstream inFile("IDR.data");
string contents("");
if (inFile.is_open()) {
std::stringstream buffer;
buffer << inFile.rdbuf();
contents.append(buffer.str());
}
inFile.close();
ofstream OpenFile("filewrite.txt");
if (OpenFile.fail()) {
cout << "filewrite.txt fail" << endl;
return 0;
}
OpenFile.write(contents.c_str(), contents.length());
cout << "length()" << contents.length() << endl;
OpenFile.close();
// strcpy(pFileContent, contents.c_str());
return 0;
}
(rdbuf)c++流操作----->rdbuf() - 崔晓东 - 博客园
inQueue是List类型
List<BufferInfo *> &inQueue = getPortQueue(0);
List<BufferInfo *> &outQueue = getPortQueue(1);
while ((!inQueue.empty() || mEndOfInput) && !outQueue.empty()) {
ust explicitly initialize the base class
C++模板类代码只能写在头文件?_jinzeyu_cn的博客-CSDN博客(出现unrefence to链接问题的时候)
c++ - GNU编译器警告"class has virtual functions but non-virtual destructor"
this指针表示当前是哪个对象在使用,例如: 在父类里面把this指针打印,还是子类对象的地址。
protected等是都是限制访问用的,protected表示成员只能由子类的方法访问
c++分配二维数组的:
// 分配5x4的数组
for (int i = 0; i < 5; ++i) {
a[i] = new int[4]
}
可以返回局部变量string: 实战c++中的string系列--函数返回局部变量string(引用局部string,局部string的.c_str()函数)
C++类有继承时,析构函数必须为虚函数
结构体里面有string相关:
结构体中存在string成员,使用memset后,在赋值出现段错误
在c++中结构体中包含std::string时,要用new去分配内存,不用malloc
C++中对包含string成员的结构体变量初始化:
c++什么时候该用引用,什么时候可以不用
一次浅拷贝导致的double free:默认的拷贝构造的话 会进行浅拷贝
一种状态机的实现:
智能指针:注意,不能构造两个独立的智能指针,且指向同一个内部数据指针
shared_ptr<int> p2 = new int(1024);//错误,不能将一个内置指针隐式转化为智能指针。
shared_ptr<int> p1 = new int(1024);
shared_ptr<int> p2 = p1;