c++
HL_风神
请指教
展开
-
C++ 实现类的成员函数绑定回调
一般来讲用于绑定回调的函数是地址已确定的类似全局函数或者类的成员静态函数等,如果有特定的需求比如必须要绑定类的普通成员函数,就需要使用特别的方法,在这里推荐c++库所支持的使用一种模板函数指针funtion和bind结合使用的方法。...原创 2022-07-28 10:01:28 · 522 阅读 · 0 评论 -
goto语句跳转未初始化变量:C2362
源报错代码:编译器会报错:C2362 goto _exit跳过了_exit初始状态解决方法:解决办法就是将jo变量的声明提前到程序开始原创 2022-06-30 09:27:24 · 1253 阅读 · 0 评论 -
VS2019 生成.i预编译中间文件方法
说明:在编译c++程序的时候通常会遇到晦涩难懂的宏指令, 在预处理阶段生成的.i文件中这些宏会被替换展开, 在此时观察就容量的多.如下步骤操作:1.右击所要配置的工程属性2.选择c/c++预处理器按照截图如下配置3.重新编译即可生成.i后缀名的中间文件打开即可观察学习4.警告:当更改配置文件的时候可能会提示编译错误,但这个时候.i的编译文件已经产生可以观看了,因此配置再改回来即可....原创 2022-04-24 16:27:01 · 1089 阅读 · 0 评论 -
如何将字符串分支用于switch-case
switch-case语法中规定 case是不能用字符串来进行case分支的 ,有时候可能项目中会有相关的需求//common.h#include <stdint.h>using namespace std;namespace common{ constexpr uint32_t strToHash(const char* str); uint32_t add(uint32_t a, uint32_t b);};constexpr uint32_t common::strToH原创 2022-02-15 17:30:19 · 1009 阅读 · 0 评论 -
二叉树遍历(递归方式)
孩子表示法:typedef struct treeNode { char data; struct treeNode * lChild; struct treeNode * rChild;}treeNode,* pTreeNode;创建一个树节点pTreeNode createTreeNode(char data){ pTreeNode p = new treeNode; p->data = data; p->lChild = nul.原创 2022-02-13 15:13:09 · 134 阅读 · 0 评论 -
如何判断平台字节序的大小端?
1.利用联合体所有成员起始位置一致bool isLittleEndian(){ union isLittle_Endian { int i; char c; }; isLittle_Endian check; check.i = 1; return check.c == 1;} O "是小端模式吗? " << isLittleEndian();1.利用强制类型转换bool isLittleEndia原创 2022-02-09 20:27:00 · 318 阅读 · 0 评论 -
C++的链式编程思想
例子:class A{public: A(int val = 1):a(val){} A addA(const A &obj) { this->a = this->a + obj.a; return *this; } int a;};int main(int argc, char *argv[]){ QApplication a(argc, argv); A classA(10);原创 2022-01-13 22:01:25 · 592 阅读 · 0 评论 -
判断图片是否是jpg图片格式
判断图片是否是jpg图片格式简单的根据部分字节判断图片格式:JPG格式图片的判断依据是第一个字节和第二个字节的数据是0xff和0xd8,倒数第一个和倒数第二个字节数据分别是0xd9和0xff,如果都对,那么判断此数据为jpg图片数据!...原创 2021-07-14 15:00:42 · 5818 阅读 · 0 评论 -
类模板案例-数组类的封装
类模板案例-数组类的封装需求分析:原创 2021-07-06 00:01:09 · 84 阅读 · 0 评论 -
类模板与友元
类模板与友元e.g:原创 2021-07-05 23:33:45 · 47 阅读 · 0 评论 -
2021-07-02
类模板成员函数分文件编写原创 2021-07-02 22:47:24 · 53 阅读 · 0 评论 -
类模板的成员函数类外实现
类模板的成员函数类外实现e.g:原创 2021-07-02 22:36:56 · 55 阅读 · 0 评论 -
类模板与继承
类模板与继承e.g:原创 2021-07-02 22:29:17 · 41 阅读 · 0 评论 -
类模板对象做函数参数
类模板对象做函数参数指定传入类型参数模板化整个类模板化原创 2021-07-02 22:20:33 · 64 阅读 · 0 评论 -
类模板初识
类模板类模板的作用:建立一个通用类,类中的数据成员可以不具体制定,用一个虚拟的类型来代表 template <class nameType ,class ageType> class Person { Person(nameType name,ageType age) { m_name = name; m_age = age; } nameType m_name; ageType m_age; } void test() {原创 2021-07-02 22:08:12 · 59 阅读 · 0 评论 -
模板的局限性
模板的局限性模板并不是万能的,有些特定的数据类型,需要用具体化方式做特殊实现template<class T>bool compare(T a,T b){ if(a == b) { return true; } else { return false; }}class Person{ Person(string s,int i) { name = s; age = i; } string name; int age;}Pers原创 2021-05-20 20:01:16 · 68 阅读 · 0 评论 -
普通函数和函数模板的调用规则
普通函数和函数模板的调用规则如果函数模板和普通函数都可以实现,优先调用普通函数可以通过空模板参数列表来强制调用函数模板函数模板也可以发生重载如果函数模板可以产生更好的匹配,优先调用函数模板 e.g: void myFun(int a) { cout << "调用普通函数 " << endl; } template <class T> void myFun(T a) { cout << "调用模板函数 " << e原创 2021-05-20 18:09:41 · 98 阅读 · 0 评论 -
普通函数与函数模板的区别
普通函数与函数模板的区别普通函数调用的时候可以发生自动类型转换函数模板调用的时候,如果自动类型推导,不会发生隐式类型转换如果使用显示指定类型的方式,可以发生隐式类型转换1.普通函数调用的时候可以发生自动类型转换e.g: 声明: int myAdd01(int a,int b) { return a+b; } 使用: myAdd01(2,'v'); // OK2.函数模板调用的时候,如果自动类型推导,不会发生隐式类型转换e.g: 声明: tamplat原创 2021-05-20 15:56:56 · 70 阅读 · 0 评论 -
友元的初识
友元全局函数做友元e.g: class Demo{private: int val; /* 友元函数的声明,声明的权限跟访问的权限没有关系 */public: friend void setval(Demo &obj); //将函数setval声明为Demo类的友元函数,也就是说函数setval可以访问Demo类中的私有/受保护成员; friend int getval(const Demo &obj); //将函数getval声明为Demo类的友元函数;};v原创 2021-03-02 22:27:02 · 36 阅读 · 0 评论