C++随笔
Forston
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Vector代码实现(模板)
简易的vector代码实现,目前实现了以下方法:insert delete operate[]C++源码#pragma once#include <iostream>const int DEFAULT_VECTOR_LEN = 4;template <typename T>class CSLVector{public: CSLVector(); ~CSLVector(); bool Insert(T oData); bool Delete原创 2021-12-28 20:34:18 · 663 阅读 · 0 评论 -
基于链表实现的队列(模板)
队列:先进先出代码实现:#pragma once#include <iostream>template <typename T>class CSLQueue{ typedef struct ST_NODE { T* pData; ST_NODE* pNext; }ST_SL_NODE;public: CSLQueue(); ~CSLQueue(); bool EnQueue(T* pData); //need to free .原创 2021-12-21 20:36:07 · 590 阅读 · 0 评论 -
字节序简述
小端字节序:将低字节存在高地址大端字节序:将高字节存在高地址Windows默认时小端字节序,可以看一下VS debug时的内存截图。如何判断机器的字节序#include <iostream>using namespace std;bool checkLitteEndian(){ int a = 0x01; unsigned char * pBuff = (unsigned char *)&a; return pBuff[0] == 0x01.原创 2021-12-20 19:38:18 · 243 阅读 · 1 评论 -
shared_ptr&&weak_ptr
shared_ptrC++11中引入shared_ptr来简化内存的管理,当shared_ptr不再使用时,自动回收内存。初始化1)通过 make_shared赋值(推荐的初始化方式)2)通过reset3)通过赋值int main(int argc, char* argv[]){ cout << "**************implement an instance by make_shared **************************" <&l原创 2021-12-06 21:55:18 · 1618 阅读 · 0 评论 -
单实例(单例模式)
特点:1、只能被初始化一次(不能提供public的构造函数和析构函数)2、不能被拷贝(不能提供拷贝构造函数、赋值函数)示例:Windows中进行socket开发时,要loadWs2_32.lib,同时还要调用WSAStartup和WSACleanup来初始化和释放资源,使用中只要初始化一次就可以,这时候就可以通过单实例来实现。头文件#pragma onceclass CWinSockInit{public: static CWinSockInit& GetIns.原创 2021-12-06 20:40:37 · 1189 阅读 · 0 评论 -
函数调用时的栈操作
通过分析函数调用的汇编,解析一下时如何进行函数调用示例代码#include <iostream>using namespace std;int add(int a, int b){ int d = 0; d = a + b; return d;}int main(int argc, char* argv[]){ int a = 1; int b = 2; int c = 0; c = add(a, b); return 0;}main函数的主原创 2021-12-06 20:25:27 · 458 阅读 · 0 评论 -
C++拷贝构造函数和赋值函数
在定义一个类时,会默认生成拷贝构造函数和赋值拷贝构造函数CObject(const CObject& oOBJ);CObject::CObject(const CObject &oOBJ){ //process data}什么时候用拷贝构造函数:初始化对象 作为形参 作为返回值赋值函数CObject& operator=(const CObject& oOBJ);CObject& CObject::operator=(con原创 2021-12-01 21:43:47 · 703 阅读 · 0 评论 -
引用和值传递
C++中在函数传入形参时,有两种方式,引用和值传递。引用:传入的是参数的地址,任何对该参数的修改,都会对应到这个参数起作用。值传递:传入的是参数的拷贝,如果参数是一个对象,这个时候会调用这个对象的拷贝构造函数。...原创 2021-12-01 20:51:59 · 402 阅读 · 0 评论
分享