随笔分类 -  c++

摘要:#include <iostream> #include <memory> using namespace std; class CBase { public: CBase() { } virtual ~CBase() { } void myBase() { cout << "CBase::myBa 阅读全文
posted @ 2021-09-30 15:35 猪突猛进!!! 阅读(1133) 评论(0) 推荐(0)
摘要:1、工厂模式 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。 1.1、简单工厂模式 主要特点是需要在工厂类中做判断,从而创造相应 阅读全文
posted @ 2021-09-26 09:55 猪突猛进!!! 阅读(56) 评论(0) 推荐(0)
摘要:https://zhuanlan.zhihu.com/p/30007037 阅读全文
posted @ 2021-09-07 15:52 猪突猛进!!! 阅读(21) 评论(0) 推荐(0)
摘要:C++中static关键字作用总结 1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。举例来说明。同时编译两个源文件,一个是a.c,另一个是main.c。 //a.c char a 阅读全文
posted @ 2021-07-23 16:56 猪突猛进!!! 阅读(172) 评论(0) 推荐(0)
摘要:非类型模版参数 非类型参数表示一个值而非一个类型,通过一个特定的类型名而非关键字typename或者class来指定非类型参数。当一个模版被实例化时,非类型参数被一个用户提供或者编译器推断出的值所代替。这些值必须是常量表达式,从而允许编译器在编译时实例化。(关键在于编译器的自动推断) 例如编写一个c 阅读全文
posted @ 2021-07-15 09:32 猪突猛进!!! 阅读(45) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/lyn_00/article/details/83548629 阅读全文
posted @ 2021-07-14 15:49 猪突猛进!!! 阅读(15) 评论(0) 推荐(0)
摘要:可调用对象与function c++中有几种可调用对象:函数、函数指针、lambda表达式以及重载了函数调用运算符的类。和其他对象一样,可调用的对象也有类型。然而,两个不同类型的可调用对象可能共享同一种调用类型。例如 int(int,int)是一个函数类型,其接受两个int,return 一个in 阅读全文
posted @ 2021-07-14 09:43 猪突猛进!!! 阅读(75) 评论(0) 推荐(0)
摘要:我们要对程序进行调试,就必须在编译源文件时,使用-g参数,编译时使用的命令为【gcc -g test.c -o test】。 编译完成后,启动GDB调试工具,命名为:gdb + 要调试程序的程序名。 1. list/l 命令可以使用list/l命令查看程序,方便我们添加断点时查看信息。 list+l 阅读全文
posted @ 2021-07-12 17:39 猪突猛进!!! 阅读(279) 评论(0) 推荐(0)
摘要:成员函数与继承 在c++中,基类必须将其函数分为两类:一种是希望派生类进行覆盖的函数,这类函数用virtual进行修饰并定义为虚函数,通过运行时的动态绑定来决定执行哪个版本的函数;另一类是基类需要派生类继承的函数,该类函数的解析发生在编译过程中。 如果函数定义为纯虚函数的话(const = 0),那 阅读全文
posted @ 2021-07-11 21:43 猪突猛进!!! 阅读(562) 评论(0) 推荐(0)
摘要:问题来源于需要将项目的share_ptr<T> 改成const T。如果一个普通指针ptr而言,如果用其构造智能指针sm_ptr,那么sm_pt在引用结束的时候会delete一次ptr。 如果ptr的new以及delete不由我们管理(也就是说外部还有一个delete),这个时候就double fr 阅读全文
posted @ 2021-07-09 17:31 猪突猛进!!! 阅读(388) 评论(0) 推荐(0)
摘要:一、 Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释 git remote a 阅读全文
posted @ 2021-07-05 17:49 猪突猛进!!! 阅读(73) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/CPriLuke/article/details/79462791(顺便把shared_ptr内容也处理好) make_shared()的过程中会寻找构造函数,一般是copy construct,涉及到拷贝就要考虑到资源的浪费,得多注意。 阅读全文
posted @ 2021-07-05 14:39 猪突猛进!!! 阅读(613) 评论(0) 推荐(0)
摘要:Scons是什么1. make 在Linux系统上做过c/c++开发的同学们都知道一个项目工程管理工具:make和Makefile。 make 这个工具自上个世纪 70 年代 Stuart Feldman 在贝尔实验室开发出以来,就一直是类 UNIX 程序员的最爱之一。 通过检查文件的修改时间,ma 阅读全文
posted @ 2021-07-02 15:39 猪突猛进!!! 阅读(8290) 评论(0) 推荐(0)
摘要:tasks.json taks.json文件一般用来设定build环境,通过Terminal > Configure Default Build Task呼出task.json文件,官网给出的例子如下: { "version": "2.0.0", "tasks": [ { "type": "shel 阅读全文
posted @ 2021-07-02 15:03 猪突猛进!!! 阅读(13609) 评论(0) 推荐(1)
摘要:这篇博客记录一下c_cpp_properties.json文件的基本设置以及各个字段的含义。首先看一下官网给的例子: { "env": { "myDefaultIncludePath": ["${workspaceFolder}", "${workspaceFolder}/include"], "m 阅读全文
posted @ 2021-06-30 14:38 猪突猛进!!! 阅读(8433) 评论(0) 推荐(1)
摘要:https://blog.csdn.net/qq_23329167/article/details/83856430 阅读全文
posted @ 2021-06-30 10:46 猪突猛进!!! 阅读(35) 评论(0) 推荐(0)
摘要:1、c++的#include的预编译 例如:#include<iostream> 该预编译指令导致预处理器将iostream文件的内容添加到程序中。 #指令:预处理指令以#号开头,并且#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语 阅读全文
posted @ 2021-06-29 21:11 猪突猛进!!! 阅读(218) 评论(0) 推荐(0)
摘要:1. 动态内存与智能指针 share_ptr允许多个指针指向同一个对象;unique_ptr则“独占”所指向的对象;weak_ptr为伴随类,指向share_ptr所管理的对象。 share_ptr类 share_ptr也是一类模板,通过指明类型的方式进行使用,如下所示: shared_ptr<st 阅读全文
posted @ 2021-06-17 17:05 猪突猛进!!! 阅读(96) 评论(0) 推荐(0)
摘要:C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式)。那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的 阅读全文
posted @ 2021-05-15 15:56 猪突猛进!!! 阅读(115) 评论(0) 推荐(0)
摘要:首先,const是一个限定符,被它修饰的变量的值不能改变。对于一般的变量来说,其实没有顶层const和底层const的区别,而只有向指针这类复合类型的基本变量,才有这样的区别。 一 如何区分顶层const和底层const指针如果添加const修饰符时有两种情况:1 指向常量的指针(底层const): 阅读全文
posted @ 2020-07-02 18:12 猪突猛进!!! 阅读(446) 评论(0) 推荐(0)