
C++
文章平均质量分 70
jinzhu1911
认认真真干活,踏踏实实做事!
展开
-
C++ 聚合类(Aggregate Class)
C++ 聚合类(Aggregate Class)文章目录C++ 聚合类(Aggregate Class)概述聚合类定义聚合类的特性value-initialized聚合类的初始化方法union(聚合)总结概述该篇文章是用于梳理在学习聚合类的相关文章过程中总结归纳的相关知识点。用于后续深入理解和使用聚合类进行准备。聚合类定义首先看一下C++标准中的定义:An aggregate is an array or a class (clause 9) with no user-declared cons原创 2021-11-25 11:36:59 · 5713 阅读 · 2 评论 -
C++类模板实例化
C++类模板实例化文章目录C++类模板实例化1. 简介2. 类模板实例化2.1 隐式实例化(Implicit instantiation)2.2 显示实例化(Explicit instantiation)2.3 类模板中的静态成员1. 简介该文章主要总结C++类模板实例化的方法。类模板的实例化包含两种:隐式实例化(Implicit instantiation)显示实例化(Explicit instantiation)2. 类模板实例化类模板本身不是类型、对象或任何其他实体。仅包含模板定义的原创 2021-09-04 16:11:15 · 13599 阅读 · 0 评论 -
C++ undefined symbol的问题分析和解决办法
文章目录简介系统环境问题详细描述分析方法解决办法简介该篇博客主要记录在C++代码开发过程中,使用多态方式时遇到的undefined symbol的问题的分析和解决过程。系统环境1.编程语言: C++2. 系统版本:Debian93. Cmake:3.6.34. IDE: Qt Creator 5.12.0问题详细描述1. 定义了基类Vehicle,部分函数定义纯虚函数2. 定义了三个子类```Car, Truck, Bus```,并在子类中重载实现基类的纯虚函数3. 运行时报错误:`原创 2021-03-29 11:16:39 · 11566 阅读 · 0 评论 -
CMake中引用Boost库
CMake中引用Boost库 文章目录概述CMakeLists.txt编写find_package搜索路径设置用例Boost动态库链接Boost头文件库链接概述在Linux开发时常常使用Boost库,若项目使用CMake进行组织管理和编译,需要掌握在CMake中实现Boost库的引用的基本语法。本片博客结合自己在实际使用过程中的经验进行总结,以期回顾和进行阶段总结。...原创 2020-03-18 11:51:22 · 28565 阅读 · 2 评论 -
CMake学些笔记-将头文件的代码组织编译成接口库(接口目标)
CMake将头文件编译成静态库 文章目录原创 2020-03-18 09:58:55 · 2430 阅读 · 3 评论 -
C++ 类模板
C++ 类模板 文章目录简介定义类模板使用模板类数组模板示例和非类型参数模板多功能性模板的具体化成员模板将模板用作参数模板类和友元模板别名(C++11)简介本文中的内容主要参考C++ Primer Plus(第6版)中文版一书第14章中的内容。该篇博客主要根据自己使用模板的经验,结合书中的内容,总结类模板的原理和使用方法。定义类模板C++类模板为生成通用的类...原创 2020-03-13 15:29:57 · 300 阅读 · 0 评论 -
C++函数模板
C++ 函数模板 简介本文中的内容主要参考C++ Primer Plus(第6版)中文版一书中的内容。该篇博客主要根据自己使用模板的经验,结合书中的内容,总结函数模板的原理和使用方法。函数模板概述函数模板是通用的函数描述,它使用泛型来定义函数,然后可以使用具体的类型替换泛型。通过将类型作为参数传递给模板,可使编译器生成该类型的函数。首先函数模板的定义参考下面代...原创 2020-03-12 22:08:17 · 220 阅读 · 0 评论 -
Boost.preprocessor
Boost.preprocessor总结 简介在项目中发现有使用Boost库中的preprocessor库,而目前中文关于该库的介绍很少,在此根据查看Boost库的参考文档,对于该库的使用根据自己的经验进行总结。本文主要根据Boost的官方帮助文档写的,因此如果英文阅读没有问题的读者建议,直接阅读原文,链接地址如下:Boost官方文档宏定义此部分主要介绍p...原创 2020-03-11 11:33:48 · 1022 阅读 · 0 评论 -
C++11就地初始化与列表初始化
C++11就地初始化与列表初始化 就地初始化简介在C++11之前,只能对结构体或类的静态常量成员就行就地初始化,其他的不行。如下代码所示:class Test{ private: static const int a=10; //yes int a=10; //no}在C++11中,结构体或类的数据成员在申明时可以直接赋予...原创 2020-03-11 10:09:13 · 630 阅读 · 0 评论 -
C/C++中的宏定义及#和##的作用
在宏定义中经常看到符号#和##的使用,该篇博客就结合宏定义的展开方式说明这两种符号的具体作用。用法说明 #define f(a,b) a##b // (1) #define g(a) #a // (2) #define h(a) g(a) // (3) 在上述三个宏定义中使用了符号#和##,使用上述宏如下代码所示 ...原创 2020-03-10 22:14:24 · 1190 阅读 · 0 评论 -
Windows系统下使用Boost库
Boost库简介Boost程序库代表了目前C++语言最新最前沿的技术,内容博大精深,丝毫不逊于经典的STL,但同时也令很多人难以摸清门路,不得登堂入室而一窥究竟。有鉴于此,根据自己在实际开发中使用Boost库的经验并结合最新的C++11进行归纳总结,写此博客整理知识点。Boost官网见:https://www.boost.org/Boost库安装Boost库既可以选择下载源代码自编译安装,...原创 2019-10-16 22:45:54 · 862 阅读 · 0 评论 -
C++operator()(重载小括号运算符)
在C++语言中有时候需要重载运算符: (),今天我们主要介绍它主要应用的场合。仿函数先考虑一个简单的例子:假设有一个vector,你的任务是统计长度小于5的string的个数,如果使用count_if函数的话,你的代码可能长成这样: bool LengthIsLessThanFive(const string& str) { return str.length() <...原创 2019-09-24 22:57:47 · 26177 阅读 · 6 评论 -
C++ std::function介绍和使用
std::function简介std::function是C++11中新引入的模板类。类模板std::function是一种通用的多态函数包装器。std::function可以存储,复制和调用任何Callable 目标的实例,例如函数,lambda表达式,绑定表达式或其他函数对象,以及指向成员函数和指向数据成员的指针。所存储的可调用对象被称为目标的std::function。如果一个std:...原创 2019-09-24 22:08:19 · 9604 阅读 · 0 评论 -
C++模板类型推导
模板类型推导对于模板函数来书,编译器需要根据实际传入的参数来推导模板类型T。例如,假设我们有下面这个模板函数:tempalte<typename T>void f(T& param); // param si a reference同时声明了这些变量:int x = 27; // x is an intconst int cx = x; // cx is ...原创 2019-09-23 22:37:46 · 1190 阅读 · 0 评论