![](https://img-blog.csdnimg.cn/20190811101243122.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++知识点
C/C++相关知识点的记录,提升对Android native的理解
热之决斗者
这个作者很懒,什么都没留下…
展开
-
Linux文件系统和进程简介
1 U N I X文件系统是目录和文件的一种层次安排,目录的起点称为根( r o o t ),其名字是一个字符/。目录(d i r e c t o r y)是一个包含目录项的文件,在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含说明该文件属性的信息。文件属性是:文件类型,文件长度,文件所有者,文件的许可权(例如,其他用户能否能访问该文件),文件最后的修改时间等。s t a t和f s ...原创 2019-12-08 21:09:07 · 301 阅读 · 0 评论 -
最全C++知识点--静态绑定和动态绑定
1 在C++中,为了支持c++的多态性,才用了动态绑定和静态绑定。对象的静态类型:对象在声明时采用的类型。是在编译期确定的。对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。静态绑定:绑定的是对象的静态类型,某特性(比如函数)依赖于对象的静态类型,发生在编译期。动态绑定:绑定的是对象的动态类型,某特性(比如函数)依赖于对象的动态类型...原创 2019-10-25 10:31:34 · 247 阅读 · 0 评论 -
最全C++知识点--面向对象程序设计
1 面向对象程序设计三个基本概念:数据抽象、继承和动态绑定;2 在C++语言中,当我们使用基类的引用(或指针)调用一个虚函数时将发生动态绑定;派生类经常(但 不总是)覆盖它继承的虚函数。如果派生类没有覆盖其基类中的某个虚函数,则该虚函数的行为类似于其他的普通函数;3 派生类实现:Quote item; //基类对象Bulk_quote bulk; //派生类对象Quote...原创 2019-10-26 11:25:56 · 1158 阅读 · 0 评论 -
linux epoll使用原理
1 介绍 Epoll 是一种高效的管理socket的模型,相对于select和poll来说具有更高的效率和易用性。传统的select以及poll的效率会因为 socket数量的线形递增而导致呈二次乃至三次方的下降,而epoll的性能不会随socket数量增加而下降。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。 Epoll...原创 2019-08-10 21:35:55 · 786 阅读 · 0 评论 -
shell基础命令
1 目录移动: cd /user/bin 单点符(.)表示当前目录,双点符(..)表示当前目录的父目录2 查看当前目录绝对路径: pwd3 查看目录文件:ls -F F参数可以轻松区分文件和目录-a 用于将隐藏文件和普通文件及目录一起显示出来-l参数会产生长列表格式的输出4 用touch命令轻松创建空文件:touch test_one5 复制文件:cp source...原创 2019-07-08 16:56:33 · 354 阅读 · 0 评论 -
Bazel入门
1 Bazel简介:bazel是Google开源的一套编译构建工具,广泛应用于Google内部,包括TensorFlow项目。修改TensorFlow内部源码,需要使用bazel来编译,故有必要了解下bazel。bazel优点很多,主要有1 构建快。支持增量编译。对依赖关系进行了优化,从而支持并发执行。2 可构建多种语言。bazel可用来构建Java C++ Android ios等很多语...原创 2019-06-17 23:10:15 · 5704 阅读 · 0 评论 -
CMake语法
CMake特点CMake是支持跨平台的构建系统。 可以通过CMakeList.txt方式对其进行管理。CMakeLists.txt主要包含以上的7个步骤:#1.cmake verson,指定cmake版本cmake_minimum_required(VERSION 3.13)#2.project name,指定项目的名称,一般和项目的文件夹名称FirstProject对应P...原创 2019-07-14 10:47:11 · 1258 阅读 · 0 评论 -
C++ Primer基础知识
最近在看C++ primer一书,记录下一些C++的基础知识点。1 变量声明规定了变量的类型和名字;定义与之相比,申请存储空间,还可能为变量定一个初值;变量和声明看是微不足道,但是在多个文件中使用同一个变量,就必须将声明和定义分离。变量定义只能出现在一个文件里,而其他用到该变量的文件必须对其进行声明,却不能重复定义。2 标识符由字母、数字和下划线组成,其中必须以字母或下划线...原创 2019-06-15 00:19:47 · 322 阅读 · 0 评论 -
C++ Primer标准库难点总结
最近在看C++ primer这本书的知识点,这里把8~12章标准库的难点总结了下。1 count<<“hi”<<endl; //输出hi和一个换行,然后刷新缓冲区 Count<<“hi”<<flush; //输出hi,然后刷新缓冲区,不附加任何额外字符 Count<<“hi”<<ends; //输出hi和一...原创 2019-06-16 21:29:18 · 619 阅读 · 0 评论 -
C++ Primer类设计者的工具
C++ Primer类设计者的工具1 C++类中有四个不可或缺的部分,那就是构造函数、拷贝构造函数、赋值操作符和析构函数。如果类中没有定义这些函数,那么编译器将为类自动生成这些函数。当然,你也可以通过private控制策略限定不使用拷贝构造函数和赋值操作符。其中,拷贝构造函数、赋值操作符和析构函数总称为拷贝控制(copy control)。当类中有指针类数据成员时,一般都需要自已实现类的拷...原创 2019-06-20 22:42:56 · 397 阅读 · 0 评论 -
C++高级主题
1 函数指针和实参推断Templateint compareInt (*pf1)(const int &,const int &)=compare;2 我们通常见到的引用(int &a=b;)可以称之为左值引用,而右值引用则是int &&a的形式。将左值也绑定到右值引用上,我们可以显式的使用move将一个左值转换为对用的右值引用类型。int a...原创 2019-06-26 00:36:23 · 244 阅读 · 0 评论 -
C、C++知识点总结
最近在学习Android NDK相关的开发知识点,所以写了一篇知识点总结。C、C++知识点总结const作用:修饰变量,说明该变量不可以被改变; 修饰指针,分为指向常量的指针和指针常量; 常量引用,经常用于形参类型,即避免了拷贝,又避免了函数对值的修改; 修饰成员函数,说明该成员函数内不能修改成员变量。const 使用:// 类class A{private:cons...原创 2019-05-20 21:38:40 · 434 阅读 · 0 评论 -
最全C++知识点--函数
1 函数操作int fact(int val);int main() { int j = fact(5); cout << "5! is " << j << endl; return 0;}int fact(int val) { int ret = 1; while (val >...原创 2019-09-10 23:09:06 · 174 阅读 · 0 评论 -
最全C++知识点--变量和基本类型
1 short和int至少16位,long至少是32位,long long一般是64位的。2 unsigned u=10; int i=-42; u+i=4294967264;先将-42转成无符号数再进行相加。3 转义序列:换行符: \n 横向制表符:\t 报警:\a 纵向制表符:\v退格符:\b 双引号:\” ...原创 2019-09-08 13:58:01 · 483 阅读 · 0 评论 -
最全C++知识点--字符串、向量和数组
1 位于头文件的代码一般来说不应该使用using声明。头文件的内容会拷贝到所有引用它的文件中,如果头文件里有using声明,那么每个使用该头文件的文件就都会有这个声明。2 读入一整行的函数:string mystring;while (getline(cin , mystring)){ cout<<mystring<<endl;}3对于str...原创 2019-09-08 19:43:47 · 359 阅读 · 0 评论 -
最全C++知识点--重载运算与类型转换
1 重载运算符是具有特殊名字的函数,由关键字operator和其后要定义的运算符号共同组成。当一个重载的运算符是成员函数时,this绑定到左侧运算对象。成员运算符函数的参数数量比运算对象的数量少一个;2 通常情况下,不应该重载逗号、取地址、逻辑与和逻辑或运算符;不能被重载的运算符 :: .* . ?:3 重载输出运算符<<ostream &o...原创 2019-10-11 00:08:39 · 137 阅读 · 0 评论 -
最全C++知识点--拷贝控制
1 拷贝构造函数:一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,此构造函数是拷贝构造函数;2 拷贝构造函数被用了初始化非引用类型参数,这一特性解释了为什么拷贝构造函数自己的函数必须是引用类型。如果参数不是引用类型,则调用永远也不会成功—为了调用拷贝构造函数,我们必须拷贝它的实参,但为了拷贝实参,我们又需要调用拷贝构造函数,无限循环;3 当类内用=default修饰...原创 2019-10-09 22:56:23 · 123 阅读 · 0 评论 -
最全C++知识点--动态内存
1 对于局部自动对象,当我们进入其定义所在的程序块时被创建,在离开块时销魂。局部static对象在第一次使用前分配,在程序结束时销魂。除了这些外,C++还支持动态分配内存对象。动态分配对象的生存期与它们在哪里创建无关,只有当显示释放时,这些对象才会被销毁;2 new在动态内存中为对象分配空间并返回一个指向该对象的指针,我们可以选择对对象进行初始化;delete接受一个动态对象的指针,销毁该对象...原创 2019-10-07 09:57:39 · 175 阅读 · 0 评论 -
最全C++知识点--lambda表达式
1 lambda表达式:具有一个返回类型、一个参数列表和一个函数体。[capture list] (parameter list)—>return type{function body}void biggies(vector<string> &words){ stable_sort(words.begin(),words.end(),...原创 2019-09-22 22:41:37 · 195 阅读 · 0 评论 -
最全C++知识点--顺序容器
1 顺序容器概述Vector 可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢。Deque 双端队列。支持快速随机访问。在头尾位置插入/删除速度很快。List 双向链表。只支持双向顺序访问。Forward_list 单向链表。只支持单向顺序访问。Array 固定大小数组。支持快速随机访问。不能添加或删除元素。String 与...原创 2019-09-15 20:09:31 · 139 阅读 · 0 评论 -
最全C++知识点--类
1 定义在类内部的函数是隐式inline函数的。尽管所有成员都必须在类的内部申明,但是成员函数体可以定义在类内也可以定义在类外。2 定义一个返回this对象的函数class Sales_data { std::string isbn() const { return bookNo; } Sales_data &combine(cons...原创 2019-09-15 15:55:47 · 187 阅读 · 0 评论 -
最全C++知识点--表达式与语句
1 赋值运算符int i=0,j=0,k=0;const int ci=i;2前置的递增运算符:先算后用,后置的递增运算符:先用后算。递减一样。3 成员访问运算符string s1="a string",*p=&s1;auto n=(*p).size();n=p->size();4 iter的类型是vector<string>::iter...原创 2019-09-09 23:56:51 · 230 阅读 · 0 评论