new和delete的基本用法: #include <iostream> #include <stdlib.h> #define N 10 using namespace std; class test { private: int a; public: test(int d=0) { a=d; cout<<"构造函数"<<endl; } ~test() { cout<<"析构函数"<<endl; } }; int main() { //一个变量空间 int *p=(int*)malloc(sizeof(int )); if(p==NULL)//malloc开辟空间需要判断一下是否成功,new不需要 { exit(1); } *p=2; free(p); 继续阅读 >>


高嘉两 18/02/17 22:54:39
模板类,实现一个简单的单链表 #include <iostream> #include <stdlib.h> using namespace std; template <typename type> class List; template <typename type> class note//此后这个类的类型就是 note<type> 以后有用到类型必须加<type> { friend class List<type>; private: type a;//type类型的变量, note<type> * next; public: note() { a=type();//type类型对应的零初始化,如果type是int .则a=int();即a=0;如果是double,则a=double();即a=0.0000000000; next= 继续阅读 >>


高嘉两 18/02/17 22:43:44
#include <iostream> using namespace std; /* 把数据的类型也当做参数传入,减少代码重用,使代码不受类型的限制 */ int maax(int a,int b) { return a>b?a:b; } double maax(double a,double b) { return a>b?a:b; } float maax(float a,float b) { return a>b?a:b; } //求两者的最大值,只有传入的类型不同,内部的算法都一样(代码冗余),就可以模板函数 template<typename type1>//定义一个类型"变量",可以表示一个类型 type1 maax(type1 a,type1 b)//这里计算机自己会通过你出入的参数进行推演,(参数是什么类型type1就被赋为上么类型) { cout<<"ads"<<endl; r 继续阅读 >>


高嘉两 18/02/17 22:41:32
c++ static 用法 #include <iostream> using namespace std; /* 静态意味着面对所有的对象,即属于类, 属于类,不由对象调用.可以访问私有数据 静态变量:相当于全局变量,,针对于同一类对象的全局变量 静态函数:不能访问普通变量,只能访问静态变量; */ class Ctext { static int n;//静态变量; int m; public: Ctext() { m=0; n=12;//这里并不是对静态变量的初始化(初始化只能在全局里),而是运算(一个函数对变量的使用) } void showw()//show(Ctext* this)//普通函数由对象调用(有this指针),可以访问属于类的变量,也可以访问属于对象的变量 { cout<<n<<" "<<m<<endl; 继续阅读 >>


高嘉两 18/02/17 22:36:51
运算符重载 #include<iostream> using namespace std; class CInt { friend ostream& operator<<(ostream& out,const CInt & timp); private: int i; public: CInt (int d) { i=d; }; CInt(const CInt &timp) { i=timp.i; } public: CInt operator+(const CInt &timp)const //CInt add(const CInt &timp)const { return(i+timp.i); } CInt add(const CInt &timp)const { 继续阅读 >>


高嘉两 17/12/19 22:47:12
deepin添加PPA源 PPA,也就是“Personal Package Archives(个人软件包档案)”是Ubuntu Launchpad网站提供的一项服务,允许个人用户上传软件源代码,通过Launchpad进行编译并发布为2进制软件包,作为apt/新立得源供其他用户下载和更新。Ubuntu用户使用PPA源将更加方便的获得软件的最新版本. 问题是,PPA是Ubuntu提供的,其他Linux系统不能直接使用。下面就是在deppni上添加PPA源,下载软件。以codeblocks为例。. 1. 修改 /etc/lsb-release,伪装成ubuntu: DISTRIB_ID=Ubuntu DISTRIB_RELEASE=15.10 DISTRIB_CODENAME=wily DISTRIB-DESCRIPTION="Ubuntu wily" 2. 安装支持“add-apt-repository”: sudo apt-get install python-software- 继续阅读 >>


高嘉两 17/12/09 13:29:21
#include<iostream> class CFrist { int data; public: CFrist(int d=0)//构造函数 { data=d; } CFrist(CFrist &timp)//拷贝构造函数 { data=timp.data; } /*1.与构造函数一样,但参数是独特的,如果不写系统会给出一个默认的拷贝构造函数,会把对应成员赋值; 2.并且这里一定要用引用,不能直接传值.函数传对象会调用拷贝构造函数(下面有详细说明) 所以如果在调用拷贝构造函数时传入对象,就又会调用一次拷贝构造函数,就会无限循环下去. 3.拷贝构造函数在构造对象时对对象赋值一个对象的时候才会被调用,单纯的赋值的时候不会被调用. */ ~CFrist(){} }; CFrist text(CFrist t5) {/*函数传参传入一个对象,函数内 继续阅读 >>


高嘉两 17/11/19 16:24:08
构造与析构函数 好久没有写博客了….趁着正在学习c++把博客捡起来. 嗯….本次是关于构造函数和析构函数的笔记 引入:对对象在构建的时候对其进行初始化. 可以自己写一个函数对所有数据进行初始化 class Frist { int a; public://手动写一个初始化函数 void init(int d=5)//这里用了缺省值,如果调用时写了(传入)该参数,则d的值为该参数,没写就默认为5. { a=d; } }; int main() { Frist one,two; one.init();//没有d默认为5 two.init(2); //有d为2 } 这样自己定义有点小瞧c++了,在c++中有更好的方法来初始化对象. 构造函数 其实,c++在构造对象时,首先会进行一个特有的构造函数. 首先进行:即是一定会首先自动调用这个函数(该函数一般用来初始化,但语句你可以自己写) 特有的:每构造一个对象就会调 继续阅读 >>


高嘉两 17/11/05 13:56:05
在线程这一章节里感觉比进程更然了,进程呢一般你创建了他,他就会继承父进程,然后单独再开辟一块空间。在自己的地盘上做操作,都不会影响其他进程。而线程就不一样了,如果你使用了全局变量。他由于调度问题,你胡乱改,出现各种意想不到结果。灰常坑。。。 一下总结几个代码,记录一些坑点。。。 1 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <signal.h> #include <ctype.h> #include<stdlib.h> /* 允许建立的子进程个数最大值 */ #define MAX_CHILD_NUMBER 10 /* 子进程睡眠时间 */ #define SLEEP_INTERVAL 2 int proc_number=0; /* 子进程的自编号,从0开始 */ void do_something(); int mai 继续阅读 >>


高嘉两 17/08/04 19:33:01
开始看线程池感觉十分懵逼,什么任务,任务对列,不知道是什么东西。但是在网上找了一篇注释详细一点的代码,仔细看看一遍,就慢慢清楚他大概是个什么,大概是怎么实现的。一边看一遍加注释,会帮助你理解。下面是我当时参考的一篇博客,有一个线程池代码,比较简单清晰。 :http://blog.csdn.net/zouxinfox/article/details/3560891 看懂后就可以自己照着敲一遍,你的理解就会更深刻; 下面是我自己的代码,和那篇博客差不多,但是注释更详细一些。 如果有大佬发现有问题,欢迎评论。^_^ #include<stdio.h> #include<stdlib.h> #include<pthread.h>//锁 #include <unistd.h> #define N 3 void * run_pthread(); typedef struct worker //任务通用结构体(所谓通用是因为每个任务可能不同 继续阅读 >>


高嘉两 17/08/03 23:45:42