前言 fragment 可认为是一个轻量级的Activity,但不同与Activity,它是要嵌到Activity中来使用的,它用来解决设备屏幕大小的不同,主要是充分利用界面上的空间,如平板上多余的空间...image.png 本文主要介绍了关于Android中Fragment的基本用法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。...指定回滚 void popBackStack(String name, int flags); 参数string name是transaction.addToBackStack(String tag)中的...的布局为ScrollView,不会发生透传事件 ②如果存在透传事件,在fragment的根布局加上android:clickable="true" ,即可简单粗暴的解决点击事件穿透的问题 4.获取回退栈中...activity中栈内已存的fragment的数量,不包括通过方式二加载进去的fragment(在fragment中加载子fragment) 方式二:此方式是在fragment中通过getChildFragmentManager
开始之前,先了解一下基本概念: GCC:GNU Compiler Collection,中文叫 “GNU编译器套件”,它可以编译C、C++、JAVA、Go、Object-C等语言。...而GCC下面有两个比较常用的工具就是gcc(GUN C Compiler)和g++(GUN C++ Compiler),即c语言编译器和c++编译器。我通常用gcc编译c代码,用g++编译c++代码。...实际上可以用直接用g++编译c或者c++代码。本次我们介绍怎样使用g++。 写C/C++代码的工具建议使用 Sublime Text 或者 VSCode,我自己更喜欢 Sublime Text。...第二步:编译-Compiling,生成.s 文件 # -S 编译选项告诉 g++ 在为 c++ 代码产生了汇编语言文件后停止编译 # g++ 产生的汇编语言文件的缺省扩展名是 .s g++ -S test.i...-o test (2)优化源代码 所谓优化,例如省略代码中从来未使用过的变量、直接常量表达式用结果替代等,这些操作会缩减目标文件所含的代码,提高最终生成的执行文件的运行效率。
简介 C# 中的 Queue 是一种基于链表的先进先出 (FIFO) 数据结构。...简单示例 以下是一个简单的 Queue 实例: /// /// 普通队列 /// public void QueueShow...C#中的Queue类。...首先,我们创建了一个空的Queue对象。然后,使用Enqueue方法将元素添加到队列中。可以使用Count属性获取队列中的元素数量,并使用Peek方法访问队列中的第一个元素(但不移除)。...下面是一个 ConcurrentQueue 的基本示例: /// /// 线程安全队列 /// 如果多个线程同时操作一个队列推荐使用安全队列,因为有可能引起添加队列前数据都是正常的
以/字符结尾的列出文件和目录 使用 -F 选项与 ls 命令,将添加 ‘/’ 每个目录末尾的字符。...以相反的顺序列出文件 以下命令与 ls -r 选项以相反的顺序显示文件和目录。...请参阅命令输出示例。...显示文件的 UID 和 GID 显示 UID 和 GID的文件和目录。使用选项-n 用 ls 命令。...`> alias ls="ls -l"` Note:我们可以使用以下别名命令查看系统中可用的别名数量,并且可以取消别名,如下例所示。
在本文中,我们将了解如何方便地使用 cat 命令及其在 Linux 中的示例。 Cat 命令的一般语法 $ cat [OPTION] [FILE]... 1....在下面的示例中,它将显示 rumenz 和 rumenz1 终端中的文件。...在文件中显示制表符分隔的行 在下面的输出中,我们可以看到TAB空间被' ^I '字符填充。...重定向包含在单个文件中的多个文件 这将创建一个名为 rumenz3 并且所有输出都将重定向到新创建的文件中。 # cat rumenz rumenz1 rumenz2 > rumenz3 13....# cat rumenz rumenz1 rumenz2 rumenz3 | sort > rumenz4 相关文章 linux中的13个基本Cat命令示例
终端查看多个文件的内容 在下面的例子中,它将显示内容test和test1终端中的文件。 # cat test test1Hello everybodyHi world, 3....在文件中显示行号 和-n选项你可以看到一个文件的行号rumenz.txt在输出端。...使用标准输出和重定向操作符 我们可以将文件的标准输出重定向到一个新文件中,否则现有文件中的 ‘>‘(大于)符号。仔细,现有的内容test1将被内容覆盖test文件。...重定向包含在单个文件中的多个文件 这将创建一个名为test3并且所有输出都将重定向到新创建的文件中。 # cat test test1 test2 > test3 13....在单个文件中对多个文件的内容进行排序 这将创建一个文件test4和输出cat命令通过管道进行排序,结果将在新创建的文件中重定向。
社区的大佬们为学习BPF的同学们准备了福利 ,Linux内核源码里包含了大量的BPF示例代码,几乎覆盖了所有种类的BPF程序,非常适合学习者阅读和测试。今天为大家介绍如何编译运行这些BPF示例代码。...目录 TL;DR 内核源码里的BPF示例代码 下载Linux内核源代码 编译BPF示例代码 分析samples/bpf/Makefile文件 我在执行Make命令遇到的问题 为自己的BPF程序生成可执行文件...TL;DR 文章涉及的实验环境和代码可以到这个git repo获取: https://github.com/nevermosby/linux-bpf-learning 内核源码里的BPF示例代码 示例代码里基本是.../linux.git/ 观察下来,只要有新的commit,基本是实时同步的,下载最新版本的内核代码肯定没问题。...正式编译示例代码 万事俱备了,可以正式开始编译工作。
一、C++ 类中的 this 指针 1、C++ 类中的 this 指针引入 在 C++ 类中 , this 指针 是一个特殊的指针 , 由系统自动生成 , 不需要手动声明定义 , 在类中的每个 非静态成员函数..., 因此 this 指针是类内部使用的指针 , 使用 this 可以访问 实例对象 中 的所有 公有 public / 保护 protected / 私有 private 成员 ; 2、C++ 类中的...this 指针用法 C++ 类中的 this 指针用法 : 使用 this 作为指针 : 在 非静态成员函数 中 , 直接使用 this 作为 本实例对象 的指针 ; this 使用 this-> 访问成员变量...访问成员变量 : 在 非静态成员函数 中 , 直接使用如下语法 , 访问 本实例对象 中的 非静态成员变量 ; 先获取指针指向的数据 然后访问数据中的成员变量 ; (*this).成员变量名 在 C++...int height; // 身高 }; 3、完整代码示例 在下面的代码中 , 构造函数 Student(int age, int height) 的 参数名为 age 和 height , 成员变量为
编译器的部分工作是寻找程序代码中的错误。编译器不能查出程序的意义是否正确。 但它能够查出程序形式上的错误。以下是编译器能查出的最普遍的一些错误: (1)语法错误。程序猿犯了c++语言中的语法错误。...C++中每一个数据项都有相关联的类型。 类型错误的一个实例是传递了字符串字面值给应该得到整型參数的函数。 (3)声明错误。...C++程序中使用的每一个名字必须在使用之前声明。没有声明名字一般会导致 错误信息。...最常见的两种声明错误,是从标准库中訪问名字时忘记使用 “std::”, 以及因为疏忽而拼错标示符名。
这意味着你不能用动态计算的值或者运行时才能得知的值作为非类型模板参数的实参 按需实例化 按需实例化,是 C++ 模板的一个重要特性,指的是模板代码只有在真正被使用时才会被编译器实例化 在 C++ 中,模板本身并不直接生成可执行代码...上述示例中,p1指向的d1显然小于p2指向的d2对象,但是Less内部并没有比较p1和p2指向的对象内容,而比较的是p1和p2指针的地址,这就无法达到预期而错误 此时,就需要对模板进行特化。...这些独立的编译单元最后将被链接成一个单个的可执行文件 模版分离编译 假如有以下场景,模板的声明与定义分离开,在头文件中进行声明,源文件中完成定义: 在头文件 a.h 中声明了一个函数模板 Add: template..." int main() { Add(1, 2); Add(1.0, 2.0); return 0; } 存在问题: 在 C++ 中,编译器需要在编译时知道模板函数的完整定义,因为它必须用具体的类型对模板进行实例化...实例化过程中,编译器使用具体的类型替换模板参数。 对于非模板函数,声明和定义可以分离,因为编译器知道函数的大小和调用约定,所以它可以在没有函数体的情况下编译调用该函数的代码。
C++ 附带的库为我们提供了许多执行输入和输出的方法。在 C++ 中,输入和输出以字节序列或更通常称为流的形式执行。 输入流: 如果字节流的方向是从设备(例如,键盘)到主内存,那么这个过程称为输入。...两个关键字在C ++清点和CIN在C ++中 使用非常经常用于打印输出和分别服用输入。这两个是C++中最基本的获取输入和打印输出的方法。...要在 C++ 中使用 cin 和 cout,必须在程序中包含头文件iostream。 本文主要讨论头文件iostream中定义的cin、cout等对象。...**** 标准输入流(cin) :通常计算机中的输入设备是键盘。C++ cin 语句是类istream的实例,用于从标准输入设备(通常是键盘)读取输入。 ...未缓冲的标准错误流 (cerr) :C++ cerr 是用于输出错误的标准错误流。这也是 ostream 类的一个实例。由于 C++ 中的 cerr 是无缓冲的,因此当需要立即显示错误消息时使用它。
UE5中 uDraper 插件无法编译 C++ 工程的修复 uDraper是用来做布料模拟的插件。现在出现的问题是安装了 uDraper 之后无法编译 C++ 工程。...解决方案 第一步 更新引擎的插件 首先找到 uDraper 的安装目录,在安装目录下找到插件目录: 然后找到对应引擎编号的插件。...Engine\Binaries\DotNET\UnrealBuildTool: 复制好之后,编辑 [UE5 Root]\Engine\Build\BatchFiles\Build.bat,并将文件中的...Engine\Config\BaseEngine.ini,将 UnrealBuildTool.exe 替换成 UnrealBuildTool.DraperHook.exe 替换完成之后理论上就应该可以正常编译...C++ 工程了。
基本结构语法 先从下面的Hello World程序开始,逐一解释这几行代码中所包含的程序微观世界中的结构逻辑。...理论上讲,在程序中可以不使用 #include指令。但在实际程序中几乎是不可能的,否则,并不能发挥高级语言的优势,请直接使用机器语言便可。...显然,其速度较慢,但易于调试和找出程序中的逻辑错误。 编译模式:把源代码一次性翻译成目标代码。显然,其速度较快。现代编译系统已经具备很好的调试功能。...所以,运行C++程序之前,需要安装C++运行系统,此系统中至少要包含C++提供的API和翻译员,C++选择的编译模式。...编译器的执行流程: 编译成目标文件:检查源代码中是否存在语法错误,然后把源程序编译成扩展名为 obj目标文件,目标文件并不是最终编译产物,也不能执行。
这三个类的构造函数都接收两个参数(分别是argc和argv),和C/C++程序的main函数的参数差不多。...情况是这样的,我们在项目中为了保存一些全局性的数据,从QApplication派生了一个子类,并增加了一些新的方法来保存运行时的数据。编译运行很开心,程序完全满足了我们的要求。...但是程序发布出去给用户使用的时候,我们在后台的崩溃上报系统中看到了一个这样的崩溃堆栈: ? 很明显程序在QCoreApplication的arguments()方法中崩溃了。...过了一段时间之后,另外一个同事想在mac电脑上来编译工程,却发现编译后的程序死都运行不起来。...这下必须要仔细排查下原因,不能假装不知道继续帅锅了!
1.1 进入系统设置- 全局工具配置中配置 jdk maven git 不要勾选自动安装 jdk maven 使用的是环境变量中的地址 ? ? ...shell命令 shell脚本里面写的就是无非就是把编译好的war包放到对应的容器中去 然后启动容器 最关键得地方, 不同的项目.不同的容器这里的shell脚本肯定是有不一样,网络上的这类shell...这里放一个shell示例, 容器是tomcat 思路: 先查对应的tomcat时候启动, 启动了就kill掉, 然后删除webapps中的包, 把jenkins编译的包复制到对应的容器, ...中的项目文件夹 rm -rf /usr/local/tomcat_mobile/webapps/ROOT* # 3.复制jenkins生成的war包到tomcat中webapps中 cp -r /var...从日志中可以看出来这里jenkins 编译是成功的 但是在复制war的时候报错, 图中是因为不小心把空格敲成换行了 ?
1.1 进入系统设置- 全局工具配置中配置 jdk maven git 不要勾选自动安装 jdk maven 使用的是环境变量中的地址 ? ? 2.开始新建一个jenkins任务 ?...shell命令 shell脚本里面写的就是无非就是把编译好的war包放到对应的容器中去 然后启动容器 最关键得地方, 不同的项目.不同的容器这里的shell脚本肯定是有不一样,网络上的这类shell只能参考...这里放一个shell示例, 容器是tomcat 思路: 先查对应的tomcat时候启动, 启动了就kill掉, 然后删除webapps中的包, 把jenkins编译的包复制到对应的容器, 重命名包 ,...中的项目文件夹rm -rf /usr/local/tomcat_mobile/webapps/ROOT*# 3.复制jenkins生成的war包到tomcat中webapps中cp -r /var/lib...2. jenkins部署失败 首先去看对应任务的日志 ? ? ? 从日志中可以看出来这里jenkins 编译是成功的 但是在复制war的时候报错, 图中是因为不小心把空格敲成换行了 ?
C++中有的东西需要放在可以在.h文件中定义,有的东西则必须放在.cpp文件中定义,有的东西在不同的cpp文件中的名字可以一样,而有的则不能一样 那么究竟哪些东西可在头文件中定义,声明,哪些东西又必须在...show@@YAXXZ) 已经在 a.obj 中定义 所以要避免在头文件中定义函数 2、在不同.cpp中定义的函数原型(函数返回值,函数名称,函数参数)不能完全一样, 比如如果有在两个.cpp文件中均存在...static函数 在不同的cpp中可以定义函数原型一样的函数 类 不同的cpp中类的名字可以一样 类成员与函数 在.h中定义,所有成员必须在类中声明,在cpp中实现 非静态的常量整形数据成员不能就地初始化...需要到头文件以外去定义它) 类的静态的常量整形数据成员 ------------------ 可以 特殊说明 模板 模板函数与模板类的声明与实现必须放在一个文件中 至于为什么会这样,与C++的编译和链接...,和编译产生的目标文件(.obj),内部链接,外部链接有关, 我会在接下来的文章中向大家介绍
一、强调引用的概念在面向对象开发中,引用的概念是同样适用的。在python中使用类创建对象后,tom变量中仍然记录的是对象在内存中的地址,也就是tom变量引用了新建的猫对象。...使用print输出对象变量,默认情况下,是能够输出这个变量引用的对象是由哪一个类创建的对象,以及在内存中的地址(十六进制表示)提示: 在计算机中,通常使用十六进制表示内存地址。...%d可以以十进制输出数字print("%x" % addr) # %x可以以十六进制输出数字执行结果:图片__main__:后面介绍模块式再详细的说明一下Cat:这个是上面代码中创建的猫类:object...2答案:black_2和black是同一个对象同一个猫,因为从执行结果可以看出对象的地址是一样的图片在第22行代码中,在内存中为black分配一个小格子,然后把black这个标签贴在了这个小格子身上,在第...----三、方法中的self参数3.1 案例改造 - 给对象增加属性在python中,要给对象设置属性非常容易,只需要在类的外部的代码中直接通过点.设置一个属性即可,但是不推荐使用,因为对象属性的封装应该封装在类的内部
文章目录 一、ASTTransformation#visit 方法中访问 Groovy 类、方法、字段、属性 二、完整代码示例及进行编译时处理的编译过程 1、Groovy 脚本 Groovy.groovy...语法树节点 , 该节点是 ModuleNode 类型的 , 在一个 Groovy 脚本中可以定义多个 Class 类 , 其对应的 Class 语法树节点封装在了 ModuleNode 类的 List...获取 Groovy 脚本中定义的所有 Groovy 类 ; 使用 each 方法遍历上述 Class 类节点集合 List classes , 在闭包中 , 使用 it 获取正在遍历的...对象 , 用于访问 Groovy 的每个类 ; GroovyClassVisitor 对象中 , 提供了访问 类 、成员字段 、成员方法 、属性 、 构造函数的回调方法 ; 代码示例 : import... visitMethod main visitMethod run visitProperty name visitField name visitMethod hello 二、完整代码示例及进行编译时处理的编译过程
从事软件开发多年对于C/C++用的比较多,可以明确说这两种编程语言也是支持跨平台,肯定还是有很多人问什么是真正意义上的跨平台,所谓的跨平台就是同一套代码在不同的操作系统都能直接去运行,这里面涉及到一个很重要的问题...但在具体实施操作过程中还是多少有些差异,特别是涉及到操作系统接口等方面,毕竟linux和windows编程给出的api的接口还是存在一定的差异,所以单纯的谈跨平台还是有点差异,针对这种情况一般在软件架构里面会区分出很多的平台代码...,这就是编译器存在的价值,编译器的执行中也是分为几个阶段,对于linux下C语言编译过程有所了解的话,都会发现后缀为 .c 的程序文件首先转化成 .o 的中间文件,然后经过 .o 转化成可执行的二进制文件...编译器其实就是一种转化工具,将程序转化成能够运行的二进制文件,一般而言C/C++编译器是可以通用的,不同的操作系统使用不用的编译器底层。 ?...编译器是一种工具包的集合,内部的实现也涉及到C/C++的编程,编译器的通常说的编程代码还是存在一定的差异,编译器是为代码转化做服务的,真正实现跨平台的基础部件编译器算是一种,因为不同的操作系统或者计算机架构需要具体的对应实现
领取专属 10元无门槛券
手把手带您无忧上云