- 博客(19)
- 收藏
- 关注
原创 Linux下C++学习第10天,virtual虚构函数云云
首先有一个动态和静态联编的指向问题静态联编:编译器根定义的指针类型调用(由定义项确定所以静态)动态联编:运行的时候指针指向那个对象(不确定所以动态)#include <iostream>using namespace std;class Parent{public: void show() { cout << "this is parent" << endl; }};class Child : public Parent{pub
2021-01-30 14:53:32
174
原创 Linux下C++学习第9天,多态的使用
先构造基类,在构造派生类。基类的构造顺序和继承顺序有关多继承中碰上父类的同名,加上作用域调用#include <iostream>using namespace std;class Airplane{protected: int high;public: Airplane() { cout << "飞机的构造函数" << endl; high = 100; } void show1() { cout << "飞行
2021-01-29 20:59:37
132
原创 Linux下C++学习第八天 继承中父类与子类的种种
继承被继承的叫做父类或者基类,继承的类叫派生类或者子类。继承时需要标明启程权限。父类的私有权限变量子类不能访问,可以访问protected权限。#include <iostream>using namespace std;class TestA{private: int a; //只能在类的内部访问protected: int b;public: int c;};//私有继承class TestB : private TestA{/*private:
2021-01-29 19:46:55
242
原创 Linux下C++学习第七天,static变量、函数,友元函数、类。const修饰函数
static静态成员变量总结1、所有对象都共享同一个静态成员变量2、在内存分区中的全局数据中分配内存,在结束时才释放3、静态成员变量必须初始化,且在类外初始化(因为static变量是在初始化时分配内存的)4、可以通过对象访问,也可以通过类访问。(可以理解为,所有对象共享一个变量,也就无所谓是哪个对象的,因为都是同一类)static静态成员函数:静态成员函数内部只能访问静态成员变量, 不能访问普通变量#include <iostream>using namespace s..
2021-01-29 16:24:10
204
原创 Linux下C++学习第6天,molloc与new和初始化列表
molloc与new创建对象的步骤:1、申请空间 2、调用构造函数初始化在C++中,malloc是不会执行构造函数的,他只是实现了内存的分配,所以C++中不用malloc创建对象free同样也是在释放内存,不会销毁对象资源。C++中使用new来创建对象(创建对象的同时会调用构造函数),用delete来删除对象(同时调用析构函数)。#include <iostream>#include <cstdlib>using namespace std;class Test
2021-01-29 15:01:48
299
原创 Linux下C++学习第五天 (默认)构造函数,拷贝构造函数,析构函数,匿名对象
构造函数的作用通常是给属性初始化,给指针申请空间等惯用的内容,构造函数有参无参来满足调用的需求,故可存在多个构造函数,通过重载实现。构造函数通常有以下特点:1、名称与类相同;2、构造函数不能有返回值,函数体中不能有return语句。3、定义对象时自动调用。对于重载的说明:因为要匹配参数,所以,一个对象始终调用一个构造函数。 1、括号法 2、等号法 3、手动调用函数。最好使用括号法。析构函数的作用通常是用于工作完的结尾工作(释放内存,关闭打开文件等),无返回值、无法显示调用、销毁对象后自动执行、没...
2021-01-28 22:08:53
236
原创 LinuxC++学习第四天类的初识
结构体里的元素默认是公开的,是可以在外部直接使用的;类中默认是私有的,在外部不能调用。类中的成员变量是类的属性,是有内存的;成员函数是方法,是没有内存的。#include <iostream>using namespace std;/*struct Circle //结构体{ int r; double s;};*/class Circle //类{private: int r;//成员变量 属性 是有内存的 double s;public
2021-01-28 20:26:27
77
原创 Linux下C++学习第三天,占位参数默认参数函数重载
默认参数是用来防止传参时,穿的参数不够或者漏传了。默认参数跟传参重复时,函数使用的值是跟传递参数一致的。同时一旦使用默认参数,后面的参数都得是默认参数。#include <iostream>using namespace std;void print(int x, int y = 1, int z = 1) //一旦使用了默认参数, 后面的所有参数都得加上默认参数{ cout << x << y << z << endl;}
2021-01-27 00:54:52
112
原创 LinuxC++学习第二天 const 引用 指针交互的使用
const定义变量修饰的是常量,放在符号表里,也就是说他不是变量不可修改。const与define宏定义区别在于宏定义从当行定义就生效,const只是局部的#include <iostream>using namespace std;void f(){ #define b 100 //往下的代码都生效 const int c = 200;}int main(){ const int a = 1; //C++中, const修饰的是常量, 存放在符号表
2021-01-25 17:39:43
79
原创 Linux C++学习第一天 C与C++区别认识
C++中很多不同于C的部分。头文件中<stdio.h>变为<iostream>很多.h文件中的.h都没了。要使用命名空间;using namespace std;//标准命名空间#include <iostream> //包含头文件 输入输出流using namespace std; //使用标准命名空间int main(){ cout << "helloworld" << endl; //cout 标准输出流对象 &l
2021-01-25 17:35:22
174
原创 Linux下网络通信TCP/IP
协议栈:实现协议的代码叫做协议栈。网络理论介绍一般采用OSI模型,Linux中网络栈的介绍一般分为四层的Internet模型OSI七层网络模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层Linux TCP/IP模型:应用层 传输层, 网际层,网络接口 TCP/UDPTCP/UDP的区别:TCP:为应用层提供可靠的、面向连接的、基...
2021-01-24 18:11:09
171
原创 Linux下进程间的通信
进程间通信问题 :数据传输, 资源共享,通知事件,进程控制。管道通信 pipe(指向单向用户) 管道是单向的,先进先出的。从一个进程进另一个出。管道使用完需要回收。管道间的通信方式可以看为文件的读写过程实现的。无名管道(在后台,有血缘关系,而非init进程祖先进程)。1为写入段,0为读出端。#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/types..
2021-01-20 20:35:55
74
原创 Linux下进程学习及多线程copy样例
程序是放到磁盘的可执行文件进程是指程序执行的实例进程是一个具有一定独立功能的程序的一次运行活动进程是一个程序正在执行的实例。每个这样的实例都有自己的地址空间和执行状态进程三种状态:执行就绪阻塞(类似于scanf函数)进程ID(PID):标识进程的唯一数字父进程ID(PPID)启动进程的用户ID(UID)进程特点:动态性(执行过程,动态的); 并发性(可以同时几个进程); 独立性(独立运行,系统分配资源的独立单位); 异步性(相互制约,执行间断,各自独立,速度不是...
2021-01-20 14:07:47
74
原创 Linux下文件编程 基本函数简单用法(open, read,write,read)及copy实现
以open为例,在linux下使用man 2 open /man open 可得到open的头文件与函数的用法。(其他相同)open的返回值是整型,错误返回-1,所以在返回值判断的时候可以用-1来判断是否出错(相同)一下是open的两种函数用法int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);*pathname是路径(要给文件命名), flags是.
2021-01-19 14:52:21
383
原创 Ubuntu Gcc7.3.0安装步骤及可能出现问题
1、需求如果你想要安装gcc可以直接按照步骤安装,如果你是想 专门换版本到7.3.0需要先卸载原版本。sudo apt-get remove gcc再继续安装2、 gcc-7.3.0安装表2-2 gcc-7.3.0安装软件依赖列表软件名称 版本 下载地址 gmp 6.2.0 https://ftp.gnu.org/gnu/gmp/ mpfr 4.1.0 https://www.mpfr.org/mpfr-current/ mpc
2020-08-27 19:19:07
1694
3
原创 智能指针学习
智能指针:智能指针就是一个类,当超出了类的作用域是,类会自动调用析构函数。避免在某一个跳转处来不及走到delete语句,造成内存泄漏。auto_ptr创建智能指针方式auto_ptr<Test> ptest(new Test("123"));注意我们访问auto_ptr的成员函数时用的是“.”,访问指向对象的成员时用的是“->”ptest2 = ptest,ptest2会接管ptest原来的内存管理权,ptest会变为空指针,如果ptest2原来不为空,则它会释放原来的资源un
2020-08-07 17:33:00
82
原创 Ubuntu ens33没有IP
ifconfig没有ens33。cd /etc/networkifconfig -a可以看到这个时候的ens33如果他没有ipsudo dhclient ens33sudo ifconfig ens33大多数ubuntu没有网络可能是因为ens33ip不见了,也可能是在右上角的网络图标没有enable network。或者右下角适配器NAT没连接...
2020-08-04 17:52:14
1127
原创 Ubuntu-gitbook安装、修改码云仓库内容
第一步Gitbook安装//安装依赖nodejssudo apt install -y nodejs nodejs-legacy npmsudo npm config set registry https://registry.npm.taobao.orgsudo npm install n -gsudo n stable//安装gitbooknpm install gitbook-cli -g注意:安装方法很多种,依赖很多版本,千万不要这个方法装一部分再按别的方法装一部分
2020-06-19 16:00:23
205
原创 C++关于内联函数优缺点说明
内联函数可是说是函数的一种说明,在类中的函数相当于自动的添加inline说明。他的作用是在声明时,就将函数给置换了,相当于define。发生的时间段在程序编译到inline时发生文本替换,不在运行时间范围内。其他函数都是在运行的时候被替代。内联函数一般是非常简短的代码。且定义必须在调用前。类外自己声明。他的出现是为了解决函数调用效率的问题,所以很长,有循环,或者声明在后面都会出现降低效率的问题,所以是不能乱使用的。...
2020-05-12 11:17:12
668
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人