C/C++/Linux
文章平均质量分 63
「已注销」
这个作者很懒,什么都没留下…
展开
-
如何实现单向链表的逆置
如何实现单向链表的逆序呢?开发环境:VS2013#include #include struct list{int data;struct list *next;};struct list *create_list()//建立一个节点{//struct list *p = malloc(sizeof(struct list));/原创 2015-08-10 17:03:13 · 653 阅读 · 1 评论 -
二级指针的三种内存模型
二级指针的四种内存模型#define _CRT_SECURE_NO_WARNINGS#include#include#includeint main01(){char *p = "abcd1111abcd2222abcd3333";int ncount = 0;while (p = strstr(p, "abcd")){p = p + st原创 2015-08-22 23:11:29 · 406 阅读 · 0 评论 -
C++全局函数与类成员函数的区别和相互转化
#define _CRT_SECURE_NO_WARNINGS#includeusing namespace std;class ABCD{public:ABCD(int a,int b, int c){this->a = a;this->b = b;this->c = c;printf("ABCD() constrcut a:%d,b:%d,c:%原创 2015-09-15 10:20:20 · 1379 阅读 · 0 评论 -
友元函数和友元类
友元函数是全局函数,其关键字为friend,破换了封装性,友元函数可以直接获取和操作类的私有成员;若F类为A类的友元类,则F类的所有成员函数都是A类的友元函数,友元类通常设计为一种对数据操作或类之间传递消息的辅助类。#includeusing namespace std;class A{public:A(){a = 100;b = 200;}原创 2015-09-15 17:32:16 · 306 阅读 · 0 评论 -
货物链表类代码
题目:某商店经销一种货物,货物购进和卖出以箱为单位,各箱的重量不一样,因此商店需要记录目前库存的总重量,现在用C++模拟商店货物卖出和买进的情况。#includeusing namespace std;class Goods{public:Goods(int w){weight = w;total_weight += weight;}//构造函数原创 2015-09-15 11:53:49 · 491 阅读 · 0 评论 -
构造函数的对象初始化列表
当一个类里面的成员的类型是另一个类,那么如何对这个成员进行初始化呢?c++编译器提供了初始化列表对成员变量进行初始化,Constructor::Constructor():m1(v1),m2(v1,v2),m3(v3);#define _CRT_SECURE_NO_WARNINGS#includeusing namespace std;class A{pub原创 2015-09-14 00:14:58 · 325 阅读 · 0 评论 -
配置文件的读写
// myop.h#ifndef _INC_MY_OP_H#define _INC_MY_OP_H#ifdef __cplusplusextern "C" {#endiftypedef struct _Teacher{int infoId;char name[64];int age;char studentInfo[1024]; //s1,s2原创 2015-09-13 00:35:33 · 431 阅读 · 0 评论 -
匿名对象的深入分析
#define _CRT_SECURE_NO_WARNINGS#includeusing namespace std;class Location{public:Location(int xx = 0, int yy = 0){X = xx;Y = yy;cout }Location(const Location &p){X = p.原创 2015-09-13 22:27:49 · 266 阅读 · 0 评论 -
动态库调用
IDE : VS20131,将动态库文件,动态库的描述文件,以及接口文件拷贝到与你所要操作的项目的.c/.cpp文件的同级目录下2,右键点击“解决方案”,选择选项“属性”3,选择配置属性下的“链接器”,下拉添加动态库描述文件4,选择“应用”5,根据接口文件,编写相应的测试文件,测试原创 2016-09-13 14:04:57 · 284 阅读 · 0 评论 -
c++多态与匿名对象
多态是c++的三大特征之一,多态是指同样的消息被不同类型的对象接收时导致了不同的行为,本质上是对类的成员函数的操作,即调用了不同的函数。多态有哪些类型呢?面向对象的多态性可以分为四类:重载多态(函数重载)、强制多态(强制类型转化)、包含多态(主要通过虚函数来实现,研究类族中定义与不同类中同名函数的多态行为)、参数多态。重载多态与强制多态属于专用多态,包含多态与参数多态属于通用多态。重载多态多表原创 2016-11-10 23:42:06 · 404 阅读 · 0 评论 -
linux开发:线程的面向对象封装
一:建立一个线程类创建线程主函数和启动线程函数,建立线程对象;二:实现函数三:重写线程类的虚函数,建立mytask对象,启动线程。代码如下:编译链接:g++ main.cpp classPthread.cpp -o classPthread -lpthreadclassPthread.hclassPthread.cppmain.c原创 2016-12-26 20:22:54 · 332 阅读 · 0 评论 -
LINUX编程的线程操作
在Linux下,使用pthread库来创建和操作线程,pthread库是linux系统自带的一个库,这个库文件在/usr/lib/libpthread.so使用时首先在Makefile里面包含库 LFLAGES += -lphread引用头文件#include//unix标准头文件#include程序主体:1)定义线程的主函数void * Thread_Main(voi原创 2016-12-13 23:39:37 · 352 阅读 · 0 评论 -
LINUX下的文件操作
一:使用标准库函数使用stdio.h里面的函数:fopen,fwrite,fread,fclose优点:被各个平台支持二:使用LINUX api包含头文件:#include#include#include#include 使用函数:open /close/write/read 用法:int fd = open ("/home/mytest/123原创 2016-12-13 21:08:09 · 254 阅读 · 0 评论 -
Linux下的动态库和静态库
库:在c/c++里,使用库(library)的技术,可以将编译好的符号提供给第三方使用。1)共享库(动态库)share library2) 静态库 static library一:动态库的生成办法:使用g++命令来生成动态库编译,生成.o文件(编译选项:-fPIC)g++ -c -fPIC example.cpp -o example.o链接,生成目标.原创 2016-12-06 23:40:20 · 461 阅读 · 0 评论 -
如何开始一个linux程序编程
首先检查开发环境有没有配置好:1)一个SSH终端,用SecureCRT打开 一个终端 ; 2)检查samba共享目录是否可以使用,用samba新建一个共享目录linux 下c/c++开发的三个步骤:1)编辑程序.cpp(推荐notepad++编辑器,如新建main.cpp)2)编译程序(cd project, g++ main.cpp -o hellowold)3)执行可执行程序(原创 2016-11-22 10:16:20 · 426 阅读 · 0 评论 -
Makifile 的用法
Linux下对程序的自动编译文件:Makefile一:认识MakefileMakefile 是一个描述“如何生成整个项目”的脚本文件方法:1)创建一个文件Makefile :torch Makefile2)输入命令,根据Makefile里面的指示,自动执行所有的步骤:make -f Makefile 或者直接make 不带参数Makefile的写法:规则:target:原创 2016-12-02 22:43:39 · 387 阅读 · 0 评论 -
打造VIM为成熟的IDE(一):安装SuperTab插件
测试环境:VMWARE 10.0+Ubuntu 12.04集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visua原创 2016-11-14 21:45:42 · 9773 阅读 · 0 评论 -
谈谈你对多态的理解
现象:一个调用语句出现多种形态。实现多态的三个条件:1)要有继承;2)要有虚函数重写;3)要有父类指针(引用)指向子类对象。多态的原理:动态连编,根据实际对象的类型还判断重写函数的调用。原创 2015-09-27 23:34:05 · 4112 阅读 · 0 评论 -
c++继承中的构造与析构
继承中的对象模型: 在子类对象构造时,需要调用父类的构造函数对其继承得来的成员进行初始化; 在子类对象析构时,需要调用父类的析构函数对其继承得来的成员进行清理; #includeusing namespace std;class Parent{public:void printp(){c原创 2015-09-26 22:16:08 · 435 阅读 · 0 评论 -
批量劫持
批量劫持#include#include#include"detours.h"#include#pragma comment(lib,"detours.lib")static int num1(int a, int b){return a + b;}static int num2(int a, int b){return a - b;}sta原创 2015-08-15 16:50:09 · 383 阅读 · 0 评论 -
异或加密二进制文件
加密二进制文件#include #include #includevoid encrypt(char *buf, int n, char *key){ int i,j; int kn=strlen(key); for(i=0,j=0;i { buf[i]^=key[j]; if(j%kn==0)原创 2015-08-25 20:06:07 · 1836 阅读 · 0 评论 -
基于QT-widget的电子词典实现
基于QT-widget的电子词典实现#ifndefWIDGET_Hwidget.h:#define WIDGET_H#include namespace Ui {class Widget;}struct dict{ char *key; char *content; struct dict *next;};c原创 2015-08-11 22:40:44 · 3514 阅读 · 2 评论 -
输出输入的任意整数的二进制存储形式
位操作 1#include 2 #include 3 int main() 4 { 5 int num; 6 int i; 7 printf("input:\n"); 8 scanf("%d",&num); 9 printf("num=%d,&num=%p\n",num,&num); 10 int data=1 1原创 2015-08-12 00:06:06 · 376 阅读 · 0 评论 -
利用detours劫持自己的系统函数
//劫持自己#include#include#include#include#include "detours.h"#pragma comment(lib,"detours.lib")static int(*poldsystem)(const char * _Command) = system;int newsystem(const char * _Command)原创 2015-08-12 17:08:02 · 429 阅读 · 0 评论 -
电子词典的实现
电子词典的实现#define _CRT_SECURE_NO_WARNINGS#include #include #include #include #define MAX 111111 //最大记录数struct dict{char *key;char *content;};//打开字典文件,并读取文件内容int open原创 2015-08-11 19:48:06 · 681 阅读 · 0 评论 -
基于MFC的简易IDE开发
基于MFC的建议IDE开发,IDE环境:QTmain.cpp#include "mainwindow.h"#include int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.resize(600,300); w.show();原创 2015-08-10 17:41:02 · 2019 阅读 · 0 评论 -
用链表实现电子词典
#define _CRT_SECURE_NO_WARNINGS#include #include #include #include //#define MAX 111111 //最大记录数struct dict{char *key;char *content;struct dict *next;};//打开字典文件,并读取文原创 2015-08-11 20:55:27 · 910 阅读 · 0 评论 -
配置文件读写接口代码
配置文件读写接口代码********************************************************* * des.h * 用户使用des算法头文件 * *********************************************************/#ifndef _OPENDESS_H_#define _OPE原创 2015-08-31 14:22:17 · 690 阅读 · 0 评论 -
接口封装设计
sckclient.h#ifndef _SCK_CLINT_H_#define _SCK_CLINT_H_#ifdef _cplusplusextern "C" {#endif int sckClient_init(void **handle);int sckClient_send(void *handle, unsigned char *data, in原创 2015-08-17 17:38:58 · 370 阅读 · 0 评论 -
两头堵模型
#include "stdlib.h"#include "stdio.h"#include "string.h"//去掉空格后的字符串长度void main41(){char *p = " abcd ";int ncount = 0;int i, j;i = 0;j = strlen(p) -1;while (is原创 2015-08-22 16:37:45 · 402 阅读 · 0 评论 -
C++中重载与重写的理解
#includeusing namespace std;class Parent01{public:Parent01(){cout }public:void func(){cout }virtual void func(int i){cout }virtual void func(int i,int j)原创 2015-09-27 23:14:57 · 560 阅读 · 0 评论 -
判断两圆的位置关系
题目要求:(1)定义一个Point类,其属性包括点的坐标,提供计算两点之间距离的方法; (2)定义一个圆形类,其属性包括圆心和半径; (3)创建两个圆形对象,提示用户输入圆心坐标和半径,判断两个圆是否相交,并输出结果。类的声明:MyPoint.h#pragma onceclass MyPoint{原创 2015-09-12 13:45:17 · 5291 阅读 · 2 评论 -
对类的继承的理解与应用:赋值兼容性原则
#includeusing namespace std;class Parent{public:void printp(){cout }protected:int a;int b;private:};class Child:public Parent{public:Child(){a = 0;b原创 2015-09-26 22:12:12 · 390 阅读 · 0 评论 -
运算符重载的小项目展示
array.h#ifndef _ARRAY_H_#define _ARRAY_H_class myarray{public:myarray(int length);myarray(const myarray&obj);int length();void setdata(int index, int value);int getdata(int ind原创 2015-09-26 20:01:51 · 299 阅读 · 0 评论 -
将类的声明和实现分开的实例
定义了两个类,一个是MyPoint,一个是MyCircle;在测试程序的项目中添加类;1.MyPoint.h//类的声明#pragma onceclass MyPoint{private:int x0;int y0;public:void setxy(int _x0, int _y0);int getx();int gety();};原创 2015-09-11 09:22:09 · 393 阅读 · 0 评论 -
面向对象与面向过程思想比较
//以面向对象和面向过程两种思想来判断一个点是在圆内还是在圆外#includeusing namespace std;class Point{private:int x0;int y0;public:void setxy(int _x0, int _y0){x0 = _x0;y0 = _y0;}int getx(){retur原创 2015-09-10 23:43:16 · 311 阅读 · 0 评论 -
链表库测试程序
调用动态库:属性-链接器-输入-项目,添加需要调用的动态库。头文件:Mylinklist.h#ifndef _MYMLINKLIST_H_#define _MYMLINKLIST_H_typedef void LinkList;typedef struct _tag_LinkListNode{struct _tag_LinkListNode* next;原创 2015-09-08 14:02:46 · 356 阅读 · 0 评论