随笔分类 - C/C++
摘要:范例: /* * @endcode * * @note 要求属性类型为基本类型,提供判断值是否被设置属性 */ #define GET_SET_IF_PROPERTY(type, prop) \ public: \ inline void set_##prop(const type& value)
阅读全文
摘要:一、零长度数组概念 众所周知, GNU/GCC 在标准的 C/C++ 基础上做了有实用性的扩展, 零长度数组(Arrays of Length Zero) 就是其中一个知名的扩展,多数情况下, 其应用在变长数组中, 其定义如下 struct Packet { int state; int len;
阅读全文
摘要:一 现象: 粘包: A机器发出2包数据,B机器把2包数据作为一次收到,此时2包数据粘在一起。 分包: A机器发送1包数据,B机器分为两次收到这包数据,此时,这1报数据分为2次被B机器收到。 二 产生原因: 当服务端和客户端用到TCP通信时,可能会有以下场景(1)网络有延迟、(2)客户端频繁发送的数据
阅读全文
摘要:#ifndef _CELL_TIMESTAMP_HPP_ #define _CELL_TIMESTAMP_HPP_ #include<chrono> using namespace std::chrono; class CELLTimestamp { public: CELLTimestamp()
阅读全文
摘要:1.C语言强制类型转换,Type b = (Type)a,这种不安全,转换前没有类型检查。例如: char *pChar = new char; int *pInt = (int *)pChar; 这种是从小的地址(char *)转换为大的地址(int *),虽然可以编译过,但是有可能访问不安全的地
阅读全文
摘要:转发:https://www.cnblogs.com/jiftle/p/10895260.html C++ 资源大全 关于 C++ 框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。 标准库 C++标准库,包括了STL容器,算法和
阅读全文
摘要:作用:实现自定义类型的运算,类如,struct,class等 实质:把运算符当作函数去实现另一种功能 具体实现格式: 返回值类型 opertor 运算符(参数) { //对复杂操作的打包 } 运算符重载的分类: (1)友元重载:友元函数的形式重载,参数个数 = 操作数 (2)类重载:类的成员函数重载
阅读全文
摘要:如果将类模板的声明和实现写在两个独立的文件中,在构建时会出现“error LNK2019: 无法解析的外部符号 ”的错误。 现象:当单独编译每个.cpp文件时,都可以编译过,但是当程序运行时,也就是链接时就报“无法解析的外部符号 ”的错误 原因:链接时,没有找到函数的实现部分,这个跟函数模板实现机制
阅读全文
摘要:若有派生类,基类中的析构函数不是虚函数,则派生类的析构函数不会执行 #include<iostream>using namespace std;class Base{public: Base() { cout << "Base()" << endl; } virtual ~Base() { cout
阅读全文
摘要:void vectorTest(){ vector<int> container; for (int i = 0; i < 10; i++) { container.push_back(i); } vector<int>::iterator iter; for (iter = container.b
阅读全文
摘要:转载: 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响sizeof(对象)的结果。this作用域是在类内部,当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数。也就是说,即使你没有写上this指针,编译器在编译
阅读全文
摘要:转载 C++ UDP客户端服务器Socket编程 UDPServer.cpp #include<winsock2.h> #include<stdio.h> #include<string.h> #include<iostream> using namespace std; #pragma comme
阅读全文
摘要:转载 sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW); 基于TCP的socket编程 服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一个I
阅读全文
摘要:一.静态库 1、编写.c文件,在其中实现函数源代码,同时制作头文件 2、将.c文件转为.o文件 gcc -c xxx.c -o xxx.o 3、将*.o转换成库文件 ar rcs lib库名.a *.o 4、使用静态库文件 gcc yyy.c -o res -I 头文件搜索路径 -L 库文件搜索路径
阅读全文
摘要:C++中的string类1)是什么:专门的字符串操作的一个类,非常强大,字符串CString,QString2)跟char *的区别Char *是指向字符数组首地址的指针,然后我们系统提供一个string.h,这个头文件声明了很所字符串操作函数,strlen、strcat、strcmp、strcpy
阅读全文
摘要:C语言里try是一个语句或函数。其作用是是抛出错误用。 将有可能产生错误的语句括在一起,放入try语句块。如果在try语句块中发生异常,FlashPlayer会创建一个错误对象,并将该Error对象派发至第一个可用的catch块。catch语句块提供对错误的处理。如果没有try语句,或者try语句没
阅读全文