C++使用

  1. Google代码规范
    Google 的 C++ 代码规范_freeking101的博客-CSDN博客_c++代码规范
  2. c与c之间调用
    C++与C之间相互接口和库函数调用
    C语言封装 C++的类,在 C里面使用

  3. C++中类成员函数作为回调函数
    方法:类里包含自己的对象,回调函数为static
    在C++的类中使用类成员函数作为回调函数_清楚xc的博客-CSDN博客_c++ 类中的回调函数
    C++中类成员函数作为回调函数_this_CAPSLOCK 的专栏-CSDN博客_类成员函数作为回调函数

  4. 智能指针循环引用weak_ptr
    c++循环引用_chm880910的专栏-CSDN博客_循环引用c++

  5. STL基础
    C++基础-string截取、替换、查找子串函数
    C++ STL list的初始化、添加、遍历、插入、删除、查找、排序、释放
    C++ STL Map的创建、删除、插入、更新、遍历
    C++三种容器:list、vector和deque的区别

  6. 覆盖、隐藏
    C++中的覆盖与隐藏(详细讲解) - 么么打123 - 博客园
    覆盖:有virtual且一模一样
    隐藏:上面的条件不完全具备

  7. array、vector
    https://codeday.me/bug/20170403/8451.html

  8. 依赖倒置原则:父类实例化子类的对象,外部统一调父类的接口
    为什么一个对象可以用父类声明,却用子类实例化_Like a lunatic-CSDN博客
    如何通过父类引用“调用”子类所独有的方法(向上转型意义)

  9. 任何类一定要定义拷贝构造函数,特别是有指针成员存在的情况
    类一定要定义拷贝构造函数,特别是在类成员含有指针的情况(不论指针是何种类型),安全!!!_lujiandong1的专栏-CSDN博客
    private:
    People(const People &);
    People& operator =(const People &);

  10. 使用拷贝,赋值的场景
    C++拷贝构造、赋值构造详解_十分残念的博客-CSDN博客_c++ 赋值构造

拷贝是,用已初始化的对象初始化未初始化的对象。A a(1);A c = a;void g (A ret) {printf (“stack address: %x, point: %x, value: %d\n”, &ret, ret.x, ret.y);}赋值是,覆盖的关系,已初始化的对象赋值已初始化的对象A a(1);A c;c = a;A c;c = f()

A c = f();         //此时不调用任何构造函数

  12. 设计模式
        第26章 状态模式 · 设计模式之禅(第2版) · 看云

  13. C++类中静态变量和静态方法使用介绍

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表示成员只能由子类的方法访问

用dlopen打开c++的库,如果调用函数

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值