随笔分类 -  C++

宏定义方式 进行枚举类型和枚举类型的相互转换
摘要:很多时候我们会有这样的困扰: 1、如何在LOG中打印程序中的枚举类型 2、如何通过其他库内的枚举类型配置当前中的枚举类型 话不多说直接上代码: 1、枚举类型转字符串: #include <iostream> #include <string> enum Type { SC_TYPE1, SC_TYP 阅读全文

posted @ 2021-06-29 19:11 Smarc 阅读(394) 评论(0) 推荐(0)

C++ 有关指针作为函数参数的问题,自定义内存分配函数传递二级指针的问题
摘要:如题所示,我们主要讨论在自定义的内存分配函数中通常见到的代码如下所示: void Create(A** addr); 其中传递的参数是二级指针。为什么? 我们先看一下完整的动态内存分配函数的简单例子: struct A { int a = 0; int b = 0; int c[3]; }; voi 阅读全文

posted @ 2020-12-09 20:51 Smarc 阅读(367) 评论(0) 推荐(0)

C++ 设计模式--模板模式、策略模式、观察者模式
摘要:现代软件设计特征:需求频繁变化 设计模式的要点是“寻找变化点”,在变化点应用设计模式,从而更好的应对需求变化。 1、 Template Method 在软件构建结构中,往往他有整体的稳定结构,但是各个子步骤确有变化的需求,或者因为固有的原因(比如框架和应用之间)而无法和任务的整体结构同时实现。 这个 阅读全文

posted @ 2020-11-16 14:31 Smarc 阅读(788) 评论(2) 推荐(0)

C++ 强制类型转换
摘要:以下所有的cast 都不会作用于对象本身。只是返回相应的类型的对象。 1、const_cast<新类型>(表达式) const_cast 可用于转型掉(移除)常量性或易变性。 1)两个指向同一类型的多级指针可以相互转换,无关每个层级的cv (const\volidate) 限定符号。 注意: 2) 阅读全文

posted @ 2020-11-02 16:20 Smarc 阅读(180) 评论(0) 推荐(0)

C++----有关const使用
摘要:1、类的成员函数加上const 类的成员函数后面加上const struct type { int i; type(): i(3) {} void f(int v) const { // this->i = v; // 编译错误:this 是指向 const 的指针 const_cast<type* 阅读全文

posted @ 2020-11-02 10:35 Smarc 阅读(149) 评论(0) 推荐(0)

C++ 中表达式求值
摘要:首先我们来看一段代码: int a() { return std::puts("a"); } int b() { return std::puts("b"); } int c() { return std::puts("c"); } void z(int, int, int) {} int main 阅读全文

posted @ 2020-10-10 12:22 Smarc 阅读(1125) 评论(0) 推荐(0)