自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 linux学习整理_中断操作原理

中断操作原理

2022-12-13 16:36:51 145 1

原创 shell脚本

目录1、shell的概述2、脚本的分类3、shell语法初始4、变量5、预设变量6、变量的扩展7、条件测试8、控制语句9、函数1、shell的概述脚本:本质就是一个文件,文件里面存放的事 特定格式的指令, 系统可以使用脚本解析器 翻译或解析 指令 并执行(他不需要编译)shell 应用层序 脚本语言(应用程序 解析 脚本语言)shell命令解析器:系统提供 shell命令解析器:...

2020-04-20 22:48:57 266

原创 QT的信号和槽机制

概述案例:单击button 关闭主窗口widget.cppWidget::Widget(QWidget *parent) : QWidget(parent){ //设置窗口标题 this->setWindowTitle("信号"); //设置窗口大小 this->resize(800,600); //创建一个按钮 QPu...

2020-04-03 21:07:24 225

原创 C++的函数适配器

目录绑定参数取反适配器成员函数适配器mem_fun_ref普通函数作为适配器 ptr_fun扩展函数的参数接口(假如函数有一个参数 再扩展一个接口 据可以传递两个参数)绑定参数bind2nd 和bind1st区别bind2nd:将外界数据 绑定到第二个参数bind1st:将外界数据 绑定到第一个参数注意:binary_function 二元继承unary_function 一元...

2020-04-02 22:25:20 325

原创 C++必备常识

1、指针和引用的区别1.引用是给变量起别名,内部实现是指针常量(int *const ret = &a)可以简单的理解成,本体指针存放的是变量的地址。2.引用的本质是指针常量,其指向不了修改,而指针可以改变指向。3.引用创建的同时,必须初始化,指针创建的时候可以不用初始化。4.引用不能为NULL,指针可以为NULL。5.“引用变量ret”的内存单元保存的是“被引用变量a”的地址,...

2020-04-02 22:08:36 227 1

原创 C++的动态捆绑机制

当编译器发现我们的类中有虚函数的时候,编译器会创建一张虚函数表,把虚函数的函数入口地址放到虚函数表中,并且在类中秘密增加一个指针,这个指针就是vpointer(缩写vptr),这个指针是指向对象的虚函数表。在多态调用的时候,根据vptr指针,找到虚函数表来实现动态绑定。当虚函数涉及到继承的时候 子类 会继承 父类的(虚函数指针vfptr 虚函数表vftable)编译器会将虚函数表中的函数入...

2020-03-25 21:32:33 507

原创 C++之多态

引入class Animal{public: void sleep(void) { cout<<"animal 动物在睡觉"<<endl; }};class Cat:public Animal{public: void sleep(void) { cout<<"Cat 猫在...

2020-03-25 21:19:42 236

原创 C++之多继承和虚继承

多继承概述:子类继承于多个父类。多继承的格式:class 子类: 继承方式1 父类名1,继承方式2 父类名2,继承方式3 父类名3,....{};//表示子类 是由 父类名1,父类名2,父类名3...共同派生出来注意:多继承容易产生二义性解决办法:使用作用域访问成员class Base1{public: int a;};class Base2{public: ...

2020-03-25 20:55:32 268

原创 C++类的封装之 字符串MyString类

包括了运算符重载<< >> = + == [ ]mystring.h#ifndef MYSTRING_H#define MYSTRING_H#include<iostream>using namespace std;class MyString{ friend ostream& operator...

2020-03-24 23:36:09 1436

原创 C++之继承和派生

概述继承的优点:减少代码的冗余 提高代码的重用性继承的分类继承方式分类:public : 公有继承 (重要)private : 私有继承protected : 保护继承父类个数分类:1.单继承:指每个派生类只直接继承了一个基类的特征 (一个父类 派生出 一个子类)2.多继承:指多个基类派生出一个派生类的继承关系,多继承的派生类直接继承了不止一个基类的特征(多个父类 ...

2020-03-24 23:25:42 281

原创 C++之=运算符重载

1、类中没有指针成员如果类中没有指针成员 ,不需要重载=运算,默认的浅拷贝就可以完成幅值。#include <iostream>using namespace std;class Person{private: int a; int b;public: Person():a(0),b(0) { cout<<"无...

2020-03-23 23:33:09 6611 3

原创 C++运算符+重载

全局函数作为友元 完成运算符重载+#include <iostream>#include<string.h>using namespace std;class Person{ //设置成友元函数 在函数内 访问Person类中的所有数据 friend ostream& operator<<(ostream &out, P...

2020-03-21 23:36:59 200

原创 C++运算符重载

运算符重载基本概念运算符重载(operator overloading)只是一种”语法上的方便”,也就是它只是另一种函数调用的方式。运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。案例: 重载左移操作符(<<),使得 cout 可以输出对象。#include <iostream>#include<string.h>...

2020-03-20 21:56:52 174

原创 C++ 之 友元

友元的作用:c++允许 友元 访问 私有数据。友元的分类:友元函数,友元成员函数,友元类。友元的语法:friend关键字只出现在声明处 其他类、类成员函数、全局函数都可声明为友元 友元函数不是类的成员,不带this指针 友元函数可访问对象任意成员属性,包括私有属性。友元函数即 普通全局函数作为类的友元#include <iostream>#include &l...

2020-03-20 21:39:15 819

原创 this指针的使用

this指针1、this指针是隐含在对象成员函数内的一种指针2、成员函数通过this指针,就能知道操作的是哪一个对象的数据3、静态成员函数 内部没有this指针,静态成员函数不能操作非静态成员变量(静态成员函数 是属于类,函数内部没有this 指针)this指针的使用1、当形参和成员变量同名时,可用this指针来区分class Data{public: int num; //形...

2020-03-19 20:58:07 362

原创 C++单例模式设计——打印机

步骤1:在单例类内部定义了一个P类型的静态对象,作为外部共享的唯一实例步骤2:提供一个公共静态的方法,让客户可以访问它的唯一实例。步骤3:为了防止在外部对实例化其他对象,将其默认构造函数和拷贝构造函数设计为私有代码实现:#include <iostream>using namespace std;class Printer{public: //2.提供一个方法...

2020-03-19 20:41:46 510

原创 构造函数、析构函数、拷贝构造函数

1、构造函数构造函数函数名和类名相同,没有返回类型,连void都不可以,但可以有参数,可以重载构造函数:实例化对象的时候系统自动调用2、析构函数析构函数函数名是在类名前面加”~”组成,没有返回类型,连void都不可以,不能有参数,不能重载析构函数:对象释放的时候系统自动调用案例:class Data{public: int num;public: //构造函数(...

2020-03-18 22:06:12 573

原创 c++和c混合编程

在 . c中的头文件里加上#if __cplusplusextern "C"{#emdif #if __cplusplus}#emdif然后在 . cpp中包含下该头文件fun.c#include<stdio.h>int my_add(int x,int y){ return x+y;}int my_sub(int x,int y){ ...

2020-03-17 21:51:19 175

原创 C++中的const 和宏#define的区别

C++中的const1、const int data = 10;//data先放入符号表2、如果对data取地址 系统才会给data开辟空间3、const int a = b;//b是变量名 系统直接给a开辟空间 而不放入符号表4、cosnt 修饰自定义数据 系统为自定义数据开辟空间C语言中的const1、const修饰全局变量num 变量名只读 内存空间在文字常量区(只读)、不能...

2020-03-16 22:11:27 203

原创 分别用排序法和冒泡法编写排序函数

冒泡法排序由小到大排序void bubble(int *a,int n){ int i=0,j=0; for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { int tmp =0; tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp;...

2020-03-15 22:14:54 1047

原创 命名空间 namespace 解决命名冲突

namespace命名空间的定义namespace A { int a = 100;}namespace B { int a = 200;}void test02(){ //A::a a是属于A中 cout<<"A中a = "<<A::a<<endl;//100 cout<<"B中a = "&lt...

2020-03-14 16:29:58 2928

原创 C语言阶段项目-歌词同步-《简单爱.mp3》

项目整体分析分析歌词文件,将时间+歌词 组成一个节点 ,插入有序链表中 、设计模拟时钟,如果模拟时钟的时间 和链表中节点的时间相匹配, 就打印该时间点的歌词。项目演示歌词解析项目流程1、将歌词文件 一次性去取到 内存中a、用fopen打开歌词文件 FILE *fp = fopen(“简单爱.lrc”, “r”);b、使用fseek将文件流指针 定位到文件尾部 获得文件总大小c...

2020-03-13 23:02:13 2381 7

原创 C++的三大特性

1、封装把客观的事物抽象成一个类(将数据和方法打包在一起,加以权限的区分,达到保护并安全使用数据的目的)2、继承继承,所表达的是类之间相关的关系,这种关系使得对象可以继承另一类对象的特征和能力。目的:避免公用代码的重复开发,减少代码和数据冗余。3、多态可以简单地概括为“一个接口,多种方法”,字面意思为多种形态。程序在运行时才决定调用的函数,他是面向对象编程领域的核心概念。注意:...

2020-03-13 20:31:15 2295 1

原创 linux 常用命令

1、–help帮助信息(中文 命令)命令 --help 查看命令2、man (英文 命令 库函数 系统调用)第1章节:命令第2章节:系统调用第3章节:库函数格式:man n 内容 如果省略 章节数 man 默认从第1章节中查找3、自动补全命令 tab4、查看历史命令 history5、重定向 >6、管道 |ls /etc | more 表示用m...

2020-03-06 23:00:40 225

原创 通过windows 远程 访问 ubuntu 目录(samba服务器)与远程终端(SSH)

a、测试 ubuntu 和 windows 是否网络 通畅在ubuntu的终端 ping windows的ip查看window的ip:得到window的ip:192.168.1.189查看ubuntu的ip:ifconfig 获取ubuntu的网卡信息得到的ubuntu的ip 192.168.1.139window的ip:192.168.1.189ubuntu p...

2020-03-06 22:34:09 776

原创 Linux资源的更新

【资源的更新】网络更新打开终端:查看更新源:cd /etc/aptlscat sources.list打开更新源文件:sudo gedit sources.list百度搜“ubuntu12.04的更新源”测试更新:sudo apt-get update...

2020-03-06 22:21:52 623

原创 文件操作 2

一、文件的格式化操作1、fprintf 文件的写操作void test03(){ HERO hero[]={ {"德玛西亚",80, 60}, {"盲僧",90, 80}, {"小法",40, 85}, {"小炮",50, 90} }; int n = sizeof(hero)/sizeof(hero[0]); FILE *fp = NULL; int i=0;...

2020-03-04 22:26:49 294

原创 文件操作

浅拷贝和深拷贝指针变量作为 结构体的成员浅拷贝:两个结构体变量 中的 指针成员 指向 同一块堆区空间。深拷贝:两个结构体变量 中的 指针成员 指向 各自的堆区空间。文件1、文件的存取过程缓冲区的目的:提高存取效率 磁盘使用寿命。2、磁盘文件的分类物理上: 所有的磁盘文件都是 二进制存储,以字节为单位 顺序存储。逻辑上的文件分类:文本文件:基于字符编码的文件二进制文件:基于值...

2020-03-03 23:11:23 224

原创 链表的逆序和排序

链表的逆序程序中的结构体定义:typedef struct people{ int num; char name[32]; double wage; struct people *next;}PEO;原理图代码实现:PEO * reverse_link(PEO *head){ if (head == NULL)/判断链表是否存在/ { printf("link ...

2020-03-02 23:20:29 279

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除