- 博客(39)
- 收藏
- 关注
转载 纯虚函数指针
#include using namespace std;class A{double d;};class B : public A{double d;public:void f(){}};class C{double d;public:virtual void
2016-02-27 22:03:36
1039
转载 纯虚函数
#includeusing namespace std;//抽象类(由纯虚函数组成的类 abstract class) 不允许创建抽象类的对象 但可以用抽象类的指针或者引用指向或者引用子类对象//一般对类来说对修改关闭 对扩展开放class Animal{public:Animal(){}virtual ~Animal(){}void play(){eat();
2016-02-27 21:37:47
300
转载 多态的应用 虚函数
#includeusing namespace std;//在父类对象中 子类还未初始化 所以在构造函数中没有多态 所以在析构函数中也没有多态class Animal{public:Animal(){sleep();}virtual ~Animal(){shout();}void play(){eat();shout();sleep();}virtu
2016-02-27 21:11:41
348
转载 多态的应用
#includeusing namespace std;class USB{public:virtual void plugin(){coutvirtual void work(){coutvirtual void stop(){cout};class USBDisk:public USB{public:void plugin(){cout
2016-02-27 19:16:51
328
转载 typeid typeinfo
#includeusing namespace std;//typeid用于运行时类型识别#includeclass A{public:virtual void F(){}};class B:public A{};class C:public B{};class DVD:public A{};int main(){A *p1 = new
2016-02-27 17:04:08
562
转载 C++多态
//多态 polymorphism#includeusing namespace std;#includeclass Person{protected:string name;private:bool gender;public:void eat(const char* food){coutvoid sleep();//虚函数 调用时不会根据指针什么
2016-02-27 16:37:55
312
转载 多重继承 虚继承 组合
#includeusing namespace std;//虚继承的基类成为虚基类 虚基类构造函数的参数由底层子类直接传递class Goods{double price;public:Goods(double p = 123.45):price(p){cout~Goods(){coutdouble getPrice(){return price;}};
2016-02-27 14:23:04
281
转载 继承
#includeusing namespace std;#includeclass Person{protected:string name;private:bool gender;public:void eat(const char* food){coutvoid sleep();void show(){coutPerson(const c
2016-02-26 21:44:05
343
转载 运算符重载(++ --)
#includeusing namespace std;class F{int n;int d;private:void reduce(){int mcd = maxcd(nif(mcd != 1) n/=mcd,d/=mcd;}public:static int maxcd(int a,int b)//静态成员函数 工具函数 不依赖于某个对
2016-02-24 20:42:29
388
转载 运算符重载4(有指针成员指向动态内存时)
#includeusing namespace std;//有指针成员指向动态内存时 自己写拷贝构造函数 自己写“=”运算符 自己写析构函数class Stack{typedef unsigned int uint;string* mem;uint max;uint len;public:Stack(uint n):mem(new string[n]),max(
2016-02-23 21:51:04
578
转载 运算符重载3
#includeusing namespace std;#includestruct date{int year;int month;int day;};struct Person{string name;int age;bool gender;double salary;date birth;Person(){cout~Person()
2016-02-23 21:04:13
298
转载 运算符重载2
#includeusing namespace std;class F{int n;int d;private:void reduce(){int mcd = maxcd(nif(mcd != 1) n/=mcd,d/=mcd;}public:static int maxcd(int a,int b)//静态成员函数 工具函数 不依赖于某个对
2016-02-23 21:03:37
330
转载 运算符重载
#includeusing namespace std;class F{int n;int d;private:void reduce(){int mcd = maxcd(nif(mcd != 1) n/=mcd,d/=mcd;}public:static int maxcd(int a,int b)//静态成员函数 工具函数 不依赖于某个对
2016-02-20 21:28:46
316
转载 拷贝构造函数
#includeusing namespace std;class F{int n;int d;public:F(int n = 0,int d = 1);//默认构造函数(无参)//这俩也算重载void print(bool newline = true);void print(bool newline = true)const;//表示函数对当前对象
2016-02-20 17:38:53
234
原创 const 值不同位置的使用
const char* fun(char a);//表示对返回值只能做只读操作char* fun(const char a);//表示对形参只能做只读操作char* fun(char a)const;//表示对当前对象只能做只读操作 当前对象:char * a = xxx.fun(b);即 fun(a,b);这样传入 a即为当前对象
2016-02-20 17:02:04
370
转载 析构函数 数组 示例
#includeusing namespace std;class Array{char a[100];int len;mutable int cur;//需要修改的成员变量public:void first()const{cur = -1;}char next()const{return a[++cur];}bool hasnest()cons
2016-02-16 16:27:47
630
转载 一个类从定义到调用
TEST.H文件:#include#include#ifndef TIME_H#define TIME_H 1class Time{int h,m,s;public:Time(){h = m = s = 0;}//此处自动申请内联 即 inlineTime(int h,int m,int s);void tick();vo
2016-02-16 10:44:01
269
转载 构造函数
#includeusing namespace std;#includeclass Person{string name;bool gender;int age;Person* lover;public:Person(const char* n,bool g = true);void growup(int years);void show();
2016-02-16 10:24:00
311
转载 C++重载
#includeusing namespace std;int& max(int& x,int& y){ return x}int& counter(){ static int cnt = 0; ++cnt; return cnt;}extern "C" void pri
2016-02-15 16:39:11
316
转载 C++函数引用
1 #include 2 using namespace std; 3 int f();//C++必须先声明,C中可有可无 4 void f1(){cout 5 void f2(void){return f1();} 6 void f3(double){cout 兼容考虑) 7 //函数的重载 overload 8 void JiaoHuan(int
2016-02-15 15:38:35
297
转载 C++ 结构指针
1 #include 2 using namespace std; 3 //结构变量.*成员指针 , 结构指针->*成员指针 4 struct date{ 5 int year; 6 int month; 7 int day; 8 void print(){cout 9 }; 10
2016-02-15 14:09:09
317
转载 new和delete
1 #include 2 using namespace std; 3 #include 4 #include 5 #include 6 //new 类型==>(类型*)malloc(sizeof(类型)) 7 8 int main() 9 { 10 int* p = static_cast(malloc(sizeof(int)
2016-02-15 10:51:55
259
转载 C++定义和强制转换
1 #include 2 using namespace std; 3 #include 4 //static_cast数值类型之间,有一方三void*的指针类型之间的转换 5 //const_cast用于临时去掉const、volatile限制 6 //reinterpret_cast人以两种指针类型之间,指针与数值类型之间 7 //dynamic_cast
2016-02-15 09:50:40
430
原创 C和C++定义机制不同1
#include#includeusing namespace std;int main(){ const int n = 100;//后面使用n的值的地方会直接用100代替 volatile const int m = 200;//m随时可能改变,每次从内存重新取 int *p = (int*)&n; *p
2016-02-14 22:13:05
257
转载 堆空间
1 #include 2 #include 3 4 typedef unsigned short int uint16; 5 typedef struct date{ 6 uint16 year; 7 uint16 month; 8 uint16 day; 9 }date; 10 void pri
2016-02-13 17:31:19
255
转载 函数指针示例
#include//保持顺序返回0,交换顺序返回1int rule1(double lh,double rh){return lh>rh;}//if(lh>rh) return 1;else return 0;int rule2(double lh,double rh){return lh#define swap(x,y){double t = x;x = y;y = t;
2016-02-13 16:09:12
302
转载 函数指针
#includevoid nianling(int n){printf("niangling :%d\n",n);}void yaowei(int n){printf("yaowei:%d\n",n);}void print(int *p){printf("%d ",*p);}void add(int *p){*p +=10;}void
2016-02-13 14:55:27
246
转载 指针数组
#includeint main(){ int *a[5];int *o[5];//p是一个数组,5个元素,每个元素是int* int* d(double);//p是一个函数,形参double,返回类型 int* int(*p)[5];//p是一个指针,指向5个元素的int数组 int x[5] = {11,2
2016-02-13 11:16:21
272
转载 二级指针
1 #include 2 #include 3 4 int str2int(const char* str,const char**q) 5 { 6 int r = 0; 7 while(isdigit(*str)) 8 { 9 r = r*10+*str-'0';
2016-02-12 21:33:00
289
转载 主方法参数示例
1 #include 2 #include 3 4 int main(int argc,char* argv[]) 5 { 6 printf("argc = %d\n",argc); 7 int i; 8 for(i = 0;i 9 printf("%d:%s\n",i
2016-02-11 17:30:56
401
转载 数组指针排序
1 #include 2 3 int main() 4 { 5 char* names[9] = {"1","2","3","4","5","6","7","8","9"}; 6 int i; 7 for(i = 0;i 8 printf("的林卡节的佛%s离开集散大夫!\n
2016-02-11 17:05:07
401
转载 指针基础1
1 #include 2 #include 3 4 int main() 5 { 6 char a[100] = {'h','e','l','\0','w'}; 7 "csd1007";//const char[8] 8 puts(a); 9 puts("csd1007"); 10
2016-02-11 16:49:29
284
转载 数组指针示例2
1 #include 2 3 char* func() 4 { 5 char a = '#'; 6 return &a;//不要返回普通局部变量的地址! 7 } 8 9 void f1(int *p,int *q){int* t = p;p = q;q = t;} 10 void f2(int *p,int *
2016-02-11 15:55:05
285
转载 数组指针示例
1 #include 2 3 4 int main() 5 { 6 int a[5] = {11,22,33,44,55}; 7 int *p;//野指针 尽量避免,用空指针代替 8 9 int* q = NULL;//空指针 10 printf("p = %p\n",p);
2016-02-11 14:01:56
352
转载 宏函数
#include 2 3 #define SWAP(T,x,y) {T t=x;x=y;y=t;}//宏函数 4 #define MAX(x,y) (x 5 #define PI 3.14159 6 #define AREA(r) PI*(r)*(r) //宏函数传参要 加括号(r) 7 #define STR(x) puts(#x) 8
2016-02-11 10:57:21
365
原创 可变长参数示例
#include#includeint max(int cnt,...){ va_list v;//v保存可变长参数表 va_list是一个类型 va_start(v,cnt);//用v保存参数cnt之后的那些参数 int i; int max = va_arg(v,int);//从参数表中取出一个int类
2016-02-10 15:46:39
292
转载 位段 bitfield
1 #include 2 3 struct mode 4 { 5 unsigned char userread:1; 6 unsigned char userWrite:1; 7 unsigned char userex:1; 8 unsigned char gourpread:1;
2016-01-28 18:21:27
314
转载 位段 bitfield
1 #include 2 3 struct mode 4 { 5 unsigned char userread:1; 6 unsigned char userWrite:1; 7 unsigned char userex:1; 8 unsigned char gourpread:1;
2016-01-28 18:20:25
359
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人