C++基础
文章平均质量分 67
dragon_cdut
和大家一起学习交流是快乐
展开
-
如何处理代码中的长参数列表
原文地址:https://blog.csdn.net/qq_33589510/article/details/120445959有经验的程序员应该都见过,一个方法坐拥几十上百个参数。方法为何要有参数?因为不同方法间需共享信息。但方法间共享信息的方式不止一种,除了参数列表,还有全局变量。但全局变量总能带来意外惊喜,所以,取消全局变量也是各大语言的趋势。但方法之间还是要传递信息的,不能用全局变量,于是参数就成了唯一选择,于是,只要你想到有什么信息要传给一个方法,就会直接它加到参数列表中,参数列转载 2021-09-26 16:01:41 · 407 阅读 · 0 评论 -
C++调用C函数
原文地址:https://blog.csdn.net/bvngh3247/article/details/89003185解决方案二:在calc.h中的每个函数最前面添加:extern “C”比较简单的方案是:extern “C” {void fun1(int arg1);void fun2(int arg1, int arg2);void fun3(int arg1, int arg2, int arg3);}若不确定当前编译环境是C还是C++,可以这样:复制代码#ifde转载 2021-03-15 17:37:31 · 213 阅读 · 0 评论 -
局部变量,静态变量,全局变量在内存中存放的位置
原文地址:https://www.cnblogs.com/dylancao/p/9936957.html 先看几个概念:1、bss是英文block started by symbol的简称,通常是指用来存放程序中未初始化的全局变量的一块内存区域,在程序载入时由内核清0。bss段属于静态内存分配。它的初始值也是由用户自己定义的连接定位文件所确定,用户应该将它定义在可读写的ram区内,源程序中使用malloc分配的内存就是这一块,它不是根据data大小确定,主要由程序中同时分配内存最大值所确定,不过如果转载 2021-03-02 16:25:00 · 4773 阅读 · 0 评论 -
C++ using
一 C++11前的使用1 using申明《c++ primer plus》中:using申明 : using + 限定名称限定名称:包含名称空间的名称举例:using std::cout;2 using编译指令举例:using namespace std;using 编译指令可以传递。二 C++11中的使用1 取代typedef举例:using ...转载 2020-03-14 12:42:41 · 257 阅读 · 0 评论 -
[C++] namespace命名空间和using用法
命名空间namespace:指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义在一个std的namespace,这就是程序开始添加 using namespace std; 的原因。很多人共同完成一套代码,不可能不出现标识符命名相同的问题,为了解决冲突问题,产生了命名空间namespace。命名空间包括又名命名空间和无名命名空间一、有名命名空间有名命名空...转载 2020-03-14 12:36:17 · 535 阅读 · 0 评论 -
pscp 命令
注意:只能在winds下执行环境准备1、先下载pscp软件,这里是我的云盘地址:链接:https://pan.baidu.com/s/1mkzRMv-aosC94KbMcMea9w提取码:k0ss2、下载好后添加环境变量常用命令使用:winds----》linux文件:pscp -pw linux密码 winds文件名 linux用户名@linuxIP:linux...转载 2020-02-18 22:15:02 · 815 阅读 · 0 评论 -
plink 命令
plink参数说明Plink: command-line connection utilityRelease 0.67Usage: plink [options] [user@]host [command] ("host" can also be a PuTTY saved session name)Options: -V print version in...转载 2020-02-18 22:08:03 · 3402 阅读 · 0 评论 -
C++ STL简介
原文地址:https://www.cnblogs.com/lanxiang/p/11248924.html目录1、什么是STL 2、STL中六大组件 2.1 容器(Container) 2.2 迭代器(Iterator) 2.3 算法(Algorithm) 2.4 仿函数(Functor) 2.5 适配器(Adaptor) 3、其他部分链接@目录...转载 2020-02-16 09:31:58 · 130 阅读 · 0 评论 -
数据结构中堆、栈、队列的概念
一、堆堆是一种经过排序的树形数据结构,每个节点都有一个值,通常我们所说的堆的数据结构是指二叉树。所以堆在数据结构中通常可以被看做是一棵树的数组对象。而且堆需要满足一下两个性质:(1)堆中某个节点的值总是不大于或不小于其父节点的值;(2)堆总是一棵完全二叉树。堆分为两种情况,有最大堆和最小堆。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。下图图一就是一个最大堆,图...转载 2020-02-05 11:13:52 · 497 阅读 · 0 评论 -
c++内存分配中堆和栈的概念
一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)— 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static...转载 2020-02-05 10:55:40 · 148 阅读 · 0 评论 -
c++ cout 输出16进制数据
demo:#include <iostream>#include <iomanip>using namespace std;int main() { char *ch; void *in;int i=0x11223344,j; in=&i; ch=(char*)in; for(j=0;j<4;j++)...原创 2020-02-04 17:16:08 · 4330 阅读 · 0 评论 -
c++ this指针
今天把this知识点做个汇总。1.什么是this先要理解class的意思,class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个...转载 2020-01-15 15:28:03 · 118 阅读 · 0 评论 -
C++ 一个类成员函数调用另一个类成员的方法
在继承之外,在C++中一个类成员函数调用另一个类成员的方法主要有:类的组合,友元类,类的前向声明,单例模式等,下面主要讲讲这4种方法的实现方法1:利用类的组合组合通俗来讲就是类B有类A的属性,如声明一个Person类,再声明一个Teacher类,Person类对象有年龄和姓名成员,而Teacher类对象成员也有年龄和姓名属性,所以我们可以将类Person的对象作为类Teacher的成员变量,...转载 2020-01-15 14:33:11 · 9910 阅读 · 1 评论 -
c++11 enum使用心得
定义和类类似,枚举定义了一种新的自定义类型,其将一组整形常量组织在一起。枚举属于字面值常量类型。使用在使用枚举时,需要注意以下两个方面:根据作用域区分,枚举分为限定作用域(C++11引入)和不限定作用域两种,定义如下:enum class DAY // 限定作用域{ MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRID...转载 2020-01-14 15:44:17 · 636 阅读 · 0 评论 -
c++11 enum class用法
// C++11之前的enum类型是继承C的,不温不火;// C++11对enum动刀了,加强了类型检查,推出强类型enum类型,眼前一亮// 使用过QT 的都知道,早就应该这么做了,用的非常爽!!// 一、C中enum类型的局限// 1、非强类型作用域enum type1{a, b, c};enum type2{a, d, e};//问题来了,两种枚举类型都有a...转载 2020-01-14 15:42:09 · 959 阅读 · 0 评论 -
cmake 基本命令 & 交叉编译配置 & 模块的编写
cmake 基本命令:cmake_minimum_required(VERSION 2.8.2 FATAL_ERROR)project("ProjName")// 不推荐使用add_definitions来设置编译选项,因为其作用如同cmake -Dadd_definitions( -std=c++11 # Or -std=c++0x -Wall -Wfatal...转载 2020-01-02 17:58:13 · 618 阅读 · 0 评论 -
c++ ::作用-2
C++中的双冒号 ::第一种,类作用域,用来标明类的变量、函数 Human::setName(char* name);第二种,命名空间作用域,用来注明所使用的类、函数属于哪一个命名空间的 std::cout << "Hello World" << std::endl;第三种,全局作用域,用来区分局部、全局的。最容易被忽视的一种,很多时候写了一个全局函数...转载 2020-01-02 10:12:14 · 250 阅读 · 0 评论 -
C++ ::作用-1
(1)作用域限定符,当在类体中直接定义函数时,不需要在函数名字的前面加上类名,但是在类体外实现函数定义的时候,必须加上类名并且加上作用域限定符。Student::Display();(2)静态数据成员既可以通过对象名引用,也可以通过类名加::来引用,class Test{public:Display();private:static int a;}Test::a...转载 2020-01-02 10:10:34 · 262 阅读 · 0 评论 -
c++ namespce命令空间用法
一、为什么使用命名空间考虑一种情况,当我们有两个同名的人,Zara,在同一个班里。当我们需要对它们进行区分我们必须使用一些额外的信息和它们的名字,比如这个区域,如果它们生活在不同的区域或者它们的母亲或父亲的名字,等等。在您的C++应用程序中也会出现同样的情况。例如,您可能正在编写一些具有名为xyz()函数的代码,并且还有另一个可用的库,它也具有相同的xyz()函数。现在编译器无法知道您...转载 2020-01-02 10:05:42 · 374 阅读 · 0 评论 -
c++ typename用法
1. //在C++中typename一般用来声明模板的模板参数(template parameter): template<typename T> class X; //T是一个模板参数 2. /*但是还有一个关键的用法。首先是两个概念: 1). qualified name 例如:std::cout, std::endl;这样含有作用域符号(::...转载 2019-12-30 14:17:01 · 2774 阅读 · 0 评论 -
C/C++ cmake语法1
通过编写CMakeLists.txt,然后运行cmake命令可以自动生成对应Makefile,从而控制make的编译过程。因此在学习cmake之前,建议先对make有个大致的了解。1.单个源文件的编译如果你的项目只有一个源文件main.cpp,那么只需要在同一个目录下新建一个名为CMakeLists.txt的文件,并添加下面的两行代码即可。cmake_minimum_requi...转载 2019-12-27 14:52:14 · 134 阅读 · 0 评论 -
cmake 指定交叉编译
cmake中toolchain变量分析告知当前使用的是交叉编译方式,必须配置,CMAKE_SYSTEM_NAME即目标机target所在的操作系统名称,比如ARM或者Linux你就需要写”Linux”,如果Android平台你就写”Android”,如果你的嵌入式平台没有相关OS你即需要写成”Generic”.SET(CMAKE_SYSTEM_NAME Linux)指定C交叉编译器,必须...转载 2019-12-23 11:11:24 · 1366 阅读 · 0 评论