自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(209)
  • 资源 (48)
  • 收藏
  • 关注

原创 Linux开发环境搭建(系统、samba、ssh、nfs、开发板挂载)

00-开发环境搭建之win8.1和ubuntu双系统安装01-开发环境搭建之虚拟机安装系统( ubuntu )

2015-08-05 15:46:31 1981

原创 Linux之GTK系列教程

00、背上行囊1——程序员学习之道01、背上行囊2——为什么要学习GTK02、背上行囊3——GUI概述03、背上行囊4——GTK简介04、背上行囊5——GTK环境搭建( Linux )05、背上行囊6——GTK环境搭建( windows )06、踏上旅途1——一个简单的空白窗口07、踏上旅途2——控件的添加08、踏上旅途3——布局容器之水平布局09、踏上旅途

2015-07-25 10:55:07 24405 10

原创 Linux系统高级编程系列教程

系统调用01、什么是系统调用?02、Linux系统调用之I/O操作(文件操作)03、文件描述符的复制:dup(), dup2()多进程实现多任务04、进程的介绍05、Linux可执行文件结构与进程结构06、多进程实现多任务(一):fork()07、多进程实现多任务(二):vfork()08、进程的控制:结束进程、等待进程结束09、Linux特殊进

2015-06-23 09:23:25 7497 2

原创 SQL系列教程

1、SQL教程01——linux下安装SQLite32、SQL教程02——SQL基本语句3、SQL教程03——SQL标准数据类型4、SQL教程04——alter:在已有的表中添加、修改或删除列5、SQL教程05——insert、select、where6、SQL教程06——运算符and和or7、SQL教程07——order b

2015-04-22 10:30:19 2001 1

原创 Linux高级网络编程系列教程

一、网络应用层编程1、Linux网络编程01——网络协议入门2、Linux网络编程02——无连接和面向连接的区别3、Linux网络编程03——字节序和地址转换4、Linux网络编程04——套接字5、Linux网络编程05——C/S与B/S架构的区别6、Linux网络编程06——UDP协议编程7、Linux网络编程07——广播(即将更新)8、Linux网络编程08

2015-04-22 10:01:21 14830

原创 50_菱形继承

具有公共祖先 的多继承class Animal{public: int data;};class Sheep:public Animal{public:};class Tuo:public Animal{public:};class SheepTuo:public Sheep,public Tuo{public:};int main(int argc, char *argv[]){ SheepTuo st; //SheepTuo 从Shee

2020-05-21 21:46:41 410

原创 49_多继承

多继承的格式class 子类: 继承方式1 父类名1,继承方式2 父类名2,继承方式3 父类名3,....{};//表示子类 是由 父类名1,父类名2,父类名3...共同派生出来class Base1{public: int a;};class Base2{public: int b;};class Son:public Base1,public Base2{ //Son类 拥有了a b};int main(int argc, char

2020-05-21 21:17:08 308

原创 48_继承中的静态成员特性

class Base{public: //静态成员属于类 而不属于对象 static int num; static int data; static void showData(void);};int Base::num = 100;int Base::data = 200;class Son:public Base{public: static int data;//父和子类 静态成员 同名 static void showDat.

2020-05-21 21:15:02 324 1

原创 47_父类和子类的同名 成员函数 处理

案例:1子类继承父类所有成员函数 和成员变量class Base{public: void func(void) { cout<<"父类中的void func"<<endl; } void func(int a) { cout<<"父类中的int func a = "<<a<<endl; }};class Son:public Base{public

2020-05-21 21:12:38 1351

原创 46_父类和子类的同名 成员变量 处理

1、当 父类和子类 成员变量同名时 在子类就近原则 选择本作用域的子类成员2、如果在子类中 必须使用父类中的同名成员 必须加上父类的作用域。class Base{ //父类的私有数据 一旦涉及继承 在子类中不可见public: int num;public: Base(int num) { this->num = num; cout<<"Base有参构造int"<<endl; } ~

2020-05-19 21:37:08 2007

原创 45_详解 子类中的构造

1、子类会默认调用 父类的 无参构造2、子类 必须显示 使用初始化列表 调用 父类的有参构造调用形式:父类名称。Son(int a,int b):Base(a),b(b){ //this->b = b;}class Base{private: int a;public: Base() { cout<<"父类的无参构造函数"<<endl; } Base(int a) {

2020-05-19 21:29:15 303

原创 44_子类中 有父类、对象成员 构造和析构的顺序

父类的构造和析构 对象成员的构造和析构 子类自身的构造和析构总结:(重要)class Other{public: Other() { cout<<"对象成员的构造函数"<<endl; } ~Other() { cout<<"对象成员的析构函数"<<endl; }};class Base{public: Base() { co

2020-05-19 21:26:01 529

原创 43_继承中的构造和析构顺序

class Base{public: Base() { cout<<"父类的无参构造函数"<<endl; } ~Base() { cout<<"父类中的析构函数"<<endl; }};class Son:public Base{public: Son() { cout<<"子类的无参构造"<<endl; .

2020-05-13 22:49:25 295

原创 42_继承的内层接结构

当前演示在vstudio中class Base{public: int a;protected: int b;private: int c;};class Son :public Base{public: int d; int e;};int main(int argc, char* argv[]){ cout << sizeof(Son) << endl; return 0;}步骤:

2020-05-13 22:46:41 135

原创 41_继承和派生的概述

1、继承和派生的概述继承的优点:减少代码的冗余 提高代码的重用性2、继承的格式派生类定义格式: Class 派生类名 : 继承方式 基类名{ //派生类新增的数据成员和成员函数 }; class 子类: 继承方式 父类名{ //子类新增的数据成员和成员函数 };继承方式分类:public : 公有继承 (重要)private : 私有继承 protected : 保护继承父类个数分类:单继承:指...

2020-05-13 22:36:54 175

原创 40_不要重载&&、||

不要重载&&、|| 因为 用户无法实现 && ||的短路特性。&& 短路特性: A && B 如果A为假 B将不会执行|| 短路特性: A || B 如果A为真 B将不会执行#include <iostream>using namespace std;class Complex{public: Complex(int flag){ this->flag = flag; }

2020-05-12 23:04:48 146

原创 39_函数调用符()的重载

#include <iostream>using namespace std;class Fun{public: int my_add(int x,int y) { return x+y; } //重载() //第一个()是重载的符号 第二个()是标明要传参 int operator()(int x,int y) { return x+y; }};void test01(){ .

2020-05-12 23:01:53 157

原创 38_等于和不等于(==、!=)运算符重载

//重载== ==出现在判断语句中 bool operator==(Person &ob) { if(strcmp(this->name, ob.name) == 0) { return true; } return false; } //重载!= !=出现在判断语句中 bool operator!=(Person &ob) { .

2020-05-12 22:59:40 357

原创 37_重载=运算符

前提1:类中 没有指针成员 不需要重载=运算符(默认的浅拷贝就可以完成)#include <iostream>using namespace std;class Person{private: int a; int b;public: Person():a(0),b(0) { cout<<"无参构造"<<endl; } Person(int a, int b):a(a),b(b) {

2020-05-11 22:17:08 124

原创 36_重载指针运算符* ->

#include <iostream>using namespace std;class Person{private: int num;public: Person(int num):num(num) { //this->num = num; cout<<"有参构造num = "<<num<<endl; } void showPerson(void) { .

2020-05-11 22:13:32 293

原创 35_重载自增运算符

1、可重载的运算符2、重载自增 或自减 ++ --运算符operator++编译器看到++a(前置++),它就调用operator++(a),当编译器看到a++(后置++),它就会去调用operator++(a,int).#include <iostream>using namespace std;class Data{ friend ostream& operator<<(ostream &out, Data &ob);

2020-05-11 21:37:39 1516

原创 34_重载加法运算符

1、全局函数作为友元 完成运算符重载+1+1 这种情况下 不需要重载 编译器能够计算#include <iostream>#include<string.h>using namespace std;class Person{ //设置成友元函数 在函数内 访问Person类中的所有数据 friend ostream& operator<<(ostream &out, Person &ob); friend

2020-05-08 20:37:49 1325 1

原创 33_运算符输出重载

1、重载运算符的概述运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型运算符重载的目的:简化操作 让已有的运算符 适应适应不同的数据类型。语法:函数的名字由关键字operator及其紧跟的运算符组成比如:重载+运算符 ==>operator+ 重载=号运算 ==>operator=注意:重载运算符 不要更改 运算符的本质操作(+是数据的相加 不要重载成相减)2、重载<<运算符#include <iostream&gt

2020-05-08 20:28:19 228

原创 32_一个类整体作为另一个类的友元

一个类的所有成员函数 访问 另一个类的私有数据#include <iostream>using namespace std;class Room;//Room向前声明class GoodGay{public: void visit1(Room &room);//此处的Room 被上方 class Room void visit2(Room &room);};class Room{ //将GoodGay作为Room的友元

2020-05-08 20:08:19 572

原创 31_友元函数

c++允许 友元 访问 私有数据。友元的语法:friend关键字只出现在声明处 其他类、类成员函数、全局函数都可声明为友元 友元函数不是类的成员,不带this指针 友元函数可访问对象任意成员属性,包括私有属性1、普通全局函数 作为 类的友元//房间类class Room{ //将goodGayVisit作为类的友元函数 //goodGayVisit 访问 类中...

2020-04-29 20:55:55 333

原创 30_c++中的const与类的使用

1、const修饰成员函数用const修饰的成员函数时,const修饰this指针指向的内存区域,成员函数体内不可以修改本类中的任何普通成员变量, 当成员变量类型符前用mutable修饰时例外int myFun(void) const //const修饰的是成员函数{}//函数内部不能修改 普通成员变量 mutable修饰时例外class Data{private: ...

2020-04-29 20:48:37 290

原创 29_this指针的使用

1、当形参和成员变量同名时,可用this指针来区分class Data{public: int num; //形参 和成员名相同 void setNum(int num) { //形参num //成员num this->num //num= num;//就近原则 形参num 赋值给 形参num ...

2020-04-29 20:33:32 217 1

原创 28_c++类中的this指针详解

1、引入c++的封装性:将数据 和 方法 封装在一起数据 和 方法 是分开存储。每个对象 拥有独立的数据.每个对象 共享同一个方法class Data{public: int m_num; void setNum(int num) { m_num = num; }};void test01(){ Data...

2020-04-28 22:33:24 253

原创 27_单例模式

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

2020-04-27 23:19:06 146

原创 26_静态成员案例之统计类实例化对象的个数

#include <iostream>using namespace std;class Data{public: Data() { cout<<"无参构造"<<endl; count++; } Data(const Data &ob) { cout&lt...

2020-04-27 23:16:44 1539

原创 25_const修饰静态成员

如果一个类的成员,既要实现共享,又要实现不可改变,那就用 static const 修饰class Data{public: const static int data;//静态成员变量(类内声明)public: //静态成员函数 属于类 而不属于对象 static int getDataStatic(void) { //num = 2...

2020-04-27 23:13:26 285

原创 24_类的静态成员注意事项

注意:1、静态成员函数的目的 操作静态成员数据。2、静态成员函数 不能访问 非静态成员数据。(静态成员函数内部没有this指针)3、普通成员函数 可以操作 静态成员数据 非静态成员数据4、静态成员变量 和 静态成员函数 都有权限之分。...

2020-04-27 23:11:25 163

原创 23_类的静态成员

1、进程成员的概述成员:成员变量 成员函数static 修饰成员变量 修饰成员函数static声明为静态的,称为静态成员。 不管这个类创建了多少个对象,静态成员只有一个拷贝,这个拷贝被所有属于这个类的对象共享。静态成员 属于类 而不是对象2、static 修饰成员变量静态变量,是在编译阶段就分配空间,对象还没有创建时,就已经分配空间。静态成员变量必须在类中声明,在类...

2020-04-27 23:07:21 150

原创 22_对象数组

1、对象数组 本质是数组 只是数组的每个元素是类的对象运行结果:2、如果想让对象数组中的元素调用有参构造 必须人为使用 有参构造初始化void test07(){ //对象数组 arr1是数组 每个元素是Person类型的对象 //定义对象数组的时候 系统会自动给 数组中的每个元素 调用构造函数 //人为 为元素 调用有参构造 //初始化部分...

2020-04-26 21:19:46 191

原创 21_new和delete详解

1、和malloc calloc realloc比较1.1、malloc返回一个void指针,c++不允许将void赋值给其他任何指针,必须强转。1.2、malloc可能申请内存失败,所以必须判断返回值来确保内存分配成功。1.3、malloc 不会调用构造函数。free 不会调用析构函数(重要的)2、new 给基本类型申请空间void test01(){ //基本类...

2020-04-26 21:07:32 151

原创 20_explicit关键字详解

C++提供了关键字explicit,禁止通过构造函数进行的隐式转换。声明为explicit的构造函数不能在隐式转换中使用class Data{private: int num;public: //explicit 该有参构造函数 不允许 隐式转换 explicit Data(int n):num(n) { cout<<"有参构...

2020-04-26 20:56:22 191

原创 19_初始化列表

目录1、概述2、类的对象作为另一个类的成员 时 对象成员 会使用初始化列表1、概述构造函数和其他函数不同,除了有名字,参数列表,函数体之外还有初始化列表注意:初始化成员列表(参数列表)只能在构造函数使用class Data{private: int m_a; int m_b; int m_c;public: //成员名(形参名)...

2020-04-23 22:16:19 301

原创 18_构造函数的分类以及调用

1、构造函数分类按参数类型:分为无参构造函数和有参构造函数按类型分类:普通构造函数和拷贝构造函数(复制构造函数)2、构造函数的调用class Data{public: int num;public: //构造函数(无参的构造) Data() { num = 0; cout<<"无参的构造函数 num...

2020-04-22 23:26:37 1573

原创 17_构造和析构函数概述

1、构造和析构函数的概述构造函数和析构函数,这两个函数将会被编译器自动调用,构造函数完成对象的初始化动作,析构函数在对象结束的时候完成清理工作。注意:对象的初始化和清理工作是编译器强制我们要做的事情,即使你不提供初始化操作和清理操作,编译器也会给你增加默认的操作,只是这个默认初始化操作不会做任何事。构造函数:实例化对象的时候系统自动调用析构函数:对象释放的时候系统自动调用2、构...

2020-04-21 23:07:15 164

原创 16_c++和c混合编程

1、概述以下在Linux下测试:c函数: void MyFunc(){} ,被编译成函数: MyFuncc++函数: void MyFunc(){},被编译成函数: _Z6Myfuncv通过这个测试,由于c++中需要支持函数重载,所以c和c++中对同一个函数经过编译后生成的函数名是不相同的,这就导致了一个问题,如果在c++中调用一个使用c语言编写模块中的某个函数,那么c++是根据c...

2020-04-20 22:25:16 184

gtk读取glade文件

先用glade绘制我们需要的图然后,用gtk读取glade文件,获取glade中的按钮,做相应的事情

2015-07-27

glade中文版windows安装

glade中文版windows安装,绝对好用

2015-07-27

gtk版本的简易计算器

在linux下用gtk实现的简易版计算器,附件中可以在linux下直接运行

2015-07-27

gtk_signal

在linux下实现gtk信号signal处理函数,可以直接运行

2015-07-27

gtk计算器布局练习

在linux下用C语言实现的,可以直接使用

2015-07-26

gtk_固定布局

在linux下用C语言开发,可以直接运行

2015-07-26

gtk_表格布局

在linux下用C 语言实现的gtk表格布局,里面有可执行文件可以直接运行

2015-07-26

gtk_垂直布局(vbox)

linux通过c实现的gtk垂直布局,里面有makefile可以编译直接运行

2015-07-25

gtk水平布局

用C语言实现的gtk水平布局,在linux环境下用gcc编译,可直接运行

2015-07-25

gtk_simple_button

c语言实现简单的button,用gtk编写

2015-07-25

进程退出控制exit

在linux下通过C语言代码来描述进程退出exit、_exit、return之间的区别

2015-06-26

vfork简单介绍

在linux下通过C语言实现了fork与vfork的区别,里面有源码,可以用gcc编译运行分析

2015-06-24

fork的简单使用

在linux下通过代码来说明fork()创建的子进程与父进程之间的关系,以及他们之间独立运行的状态

2015-06-24

获取进程号

用C语言实现获取linux进程中的进程号、父进程号、组进程号

2015-06-24

dup_dup2介绍

在linux中实现dup以及dup2,用C语言实现,里面有可执行文件,直接运行

2015-06-23

文件操作函数

linux下用C实现简单的文件读写操作,里面有源码和可执行代码

2015-06-23

tcp高效率并发服务器

在Linux用C语言编写,,通过epoll实现高效率并发服务器

2015-06-18

epoll_udp服务器

在linux下通过epoll实现udp服务器的同时收发工作

2015-06-18

tcp_poll_ser

linux系统,用C语言编写,,通过poll技术实现比多线程,多进程更加高效的tcp并发服务器

2015-06-17

poll实现udp_qq聊天

在linux下通过C语言的poll函数实现udp聊天程序(同时跟多个用户进行通信,数据收发,灵活切换)

2015-06-17

omnicppcomplete-0.41.zip

vim支持c++补全的插件

2016-05-17

共享内存——shared

在linux实现共享内存的创建、写入数据、读取数据

2015-08-17

消息队列——message

在linux下对消息队列简单的介绍

2015-08-17

pipe管道详解

在linux下介绍pipe常见的问题,并以代码的形式展现

2015-08-16

中断信号处理

该资源描述了信号产生的方式、发送信号、等待信号、处理信号、信号集、信号阻塞集、可靠信号的操作

2015-08-13

僵尸进程介绍以及防范

介绍什么是僵尸进程,以及如何处理僵尸进程

2015-08-13

gtk绘图事件

在linux下用c语言实现的gtk绘图事件

2015-07-30

gtk事件盒子

linux下使用C实现事件盒子,附件里面有源码,可以直接使用

2015-07-30

gtk_属性改变事件

在linux用C语言实现的gtk属性改变事件

2015-07-30

gtk键盘事件

在linux使用C语言实现的gtk键盘事件

2015-07-30

gtk鼠标事件

在linux下编写的gtk鼠标事件,附件有源码代码,直接编译运行

2015-07-30

gtk定时器功能实现

在linux下编写实现的gtk定时器,附件中有源码,可以make编译执行

2015-07-30

gtk背景图片设置

在linux下编写的gtk程序,附件里面有可执行文件和源代码

2015-07-30

gtk_notebook笔记本模式

在linux下编写的gtk_notebook,可以直接运行

2015-07-30

gtk之行编辑操作

在linux下可以直接运行,用c语言编写,gcc编译就行。

2015-07-29

gtk之button的设置

在linux下实现gtk的button按钮的常规设置,里面有可执行代码,可以直接运行

2015-07-28

gtk之进度条练习

在linux下实现的gtk进度条练习,附件中有可执行文件,可以直接运行,也可以用gcc编译器编译运行

2015-07-28

gtk图片资源练习

在Linux实现的gtk图片资源的使用

2015-07-28

gtk_label的简单设置

在linux实现的gtk的label简单设置,gcc编译运行即可

2015-07-27

gtk_窗口设置练习

在linux下实现的gtk窗口练习

2015-07-27

空空如也

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

TA关注的人

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