C/C++ 语言
LandscapeMi
这个作者很懒,什么都没留下…
展开
-
c++_4:多态_2_虚函数的原理
上下类型转换与晚绑定class Mammal{ public: virtual speak(); move();};Class Dog : public Mammal{ void speak(); void move();};int main(){ Mammal *pDog=new Dog; pDog->Move();原创 2015-12-12 15:49:44 · 274 阅读 · 0 评论 -
c_6: c语言字符串
字符串字符串以”\0”结尾数组以NULL结尾字符串的拷贝和比较用strcpy和strnpy,”=”赋值的是字符指针char *str1="Apple iPod"char str2[11]="Apple iPod"c语言的字符串函数strlensize_t strlen(char const *string){ int length; for (length=0;*st原创 2015-12-03 18:16:16 · 488 阅读 · 0 评论 -
c_7: c语言函数
函数参数传递值传递void swap1(int p,int q){ int temp; temp=p; p=q; q=temp; }-----swap1(a,b);-----值传递传递的是实际参数的一个副本指针传递 //指针传递,指针值 void swap2(int *p,int *q) { int temp; te原创 2015-12-03 22:45:49 · 414 阅读 · 0 评论 -
c_8: 结构体
结构体声明struct{ int a; char b; float c;} x,y[20],*z;//标签struct SIMPLE{ int a; char b; float c;};struct SIMPLE x,y[20],*z;//typedeftypedef struct { int a; ch原创 2015-12-03 23:36:05 · 431 阅读 · 0 评论 -
STL_1:模板_1_类模板
继承和组合提供了重用对象代码的方法模板提供了重用源代码的方法原创 2015-12-15 16:52:23 · 370 阅读 · 0 评论 -
STL_2: 模板_2_函数模板
tempalte<typename T> const T& min(const T& a,const T& b){return (a<b)? a:b;}int z=min<int>(i,j);min(i,j)—-用int特化函数模板的类型推断tempalte<typename T,typename U> const T& min(const T& a,const U& b){return (原创 2015-12-16 00:14:10 · 249 阅读 · 0 评论 -
STL_3: 类别转换操作符
http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/23/2652696.htmlstatic_cast最常用的类型转换符,在正常状况下的类型转换,如把int转换为float,如int i;float f;f=(float)i;或者f=static_cast<float>(i)const_cast用于取出const属性,把const原创 2015-12-16 01:20:09 · 337 阅读 · 0 评论 -
STL_4: 通用工具
pairs两个值视为一个单元(key/value)pairs被定义为structstd::pair<int ,float> p;make_pairtemplate<class T1,clas T2>pair<T1,T2> make_pair(const T1& x,const T2& y){return pair<T1,T2>(x,y);}-----std::make_pair(42原创 2015-12-16 23:30:58 · 310 阅读 · 0 评论 -
STL_5: 仿函数
http://blog.csdn.net/tianshuai1111/article/details/7687983函数对象//函数为参数void print(int elem){cout <<elem << '';}int main(){ vector<int> coll; for(int i=1;i<=9;++i) coll.push_back(i);原创 2015-12-16 23:59:34 · 250 阅读 · 0 评论 -
STL_6: STL标准库
组件容器迭代器算法 容器序列式容器vectorsdequeslists关联式容器setsmultisetsmapsmultimaps容器配接器stacksqueuespriority queues迭代器operator *operator ++operator == /operator !=operator =迭代器 函数begin()end()p原创 2015-12-17 00:11:38 · 918 阅读 · 0 评论 -
STL_7:空间配置器
序列式容器关联式容器其他容器原创 2015-12-19 16:17:48 · 264 阅读 · 0 评论 -
STL_8: 迭代器
迭代器是一种抽象概念samart_pointer 迭代器类型 能力 提供者 input迭代器 向前读取 istream output迭代器 向前写入 ostream,inserter forward迭代器 向前读取和写入 bidirectionanl迭代器 向前和向后,读取和写入 list,set,multiset,map,multimap原创 2015-12-20 15:15:53 · 270 阅读 · 0 评论 -
STL_9: 序列容器
array静态空间,一旦配置不可改变vetcorvector维护连续的线性空间template<class T,class Alloc=alloc>class vextor{ protected: iterator start; //空间头 iterator finish; //空间尾 iterator end_of_stroage; //目前原创 2015-12-20 16:24:23 · 312 阅读 · 0 评论 -
STL_9:关联容器
红黑树set所有元素都会根据元素的键值,自动排序不可改变排序规则mappair: key/valuepair的第一元素被视为键值,第二元素被视为实值mlitiset容许有重复multimap容许有重复hashtablehashset以hashtable为基础hashmap以hashtable为基础原创 2015-12-20 16:37:45 · 297 阅读 · 0 评论 -
stl_10 : 算法
待补充原创 2015-12-20 16:40:33 · 478 阅读 · 0 评论 -
c_4: c指针
内存的基本概念变量 int x=100 变量的值 & x x的地址指针变量 指针变量 int *ptr=&xint x=100;int *ptr=&x;ptr是指针变量ptr变量存储的数据是摸一个变量的地址∗ptr*ptr可以得到x的值指针详细解释 *&ptr=25=>&a产生a的地址 ∗*访问a地址的值,赋值给a指针的指针int a=1原创 2015-12-02 22:41:44 · 291 阅读 · 0 评论 -
C_3:c语言的内存
可执行文件编译源代码后的目标文件( *.o 文件 ) 可执行文件( windows=.exe; linux=.ELF)代码段+数据段+未初始化数据段代码段(text): 存放CPU执行的指令代码段通常可以共享规划了局部变量代码段指令包括:操作码和操作对象若操作对象是立即数(数值),则包括在代码段若操作对象是,局部数据,则在运行时在栈区分配空间,然后引用数据地址若是BBS和数据段,则在原创 2015-12-02 22:22:49 · 804 阅读 · 0 评论 -
C_2:c语言的编译链接
内存管理基础直接使用物理内存的问题地址空间不隔离内存使用低效程序运行地址不确定 =>添加中间层虚拟地址–>映射–>物理地址地址空间32位系统物理地址=32条总线=4GB32位系统虚拟地址=默认=1.5*物理地址每个进程都有自己独立的虚拟空间虚拟地址->物理地址的映射分段将一段与程序所需的内存空间大小的虚拟空间映射到某个内存地址空间解决了:地址空间不隔离+程序运行地址不确定分页原创 2015-12-02 16:07:00 · 733 阅读 · 0 评论 -
c++_4: 多态_1_虚函数的定义
多态的概念虚函数增强了类型的概念,而不是只是在结构内部隐藏代码;向上类型转换函数调用的bangding函数体和函数调用相联系称为捆绑早捆绑晚捆绑:运行时发生的捆绑-动态捆绑virtual函数派生类的函数—–重写//向上类型转换#include <iostream>using namespace std;enum note { middleC,Csharp,Eflat };原创 2015-12-09 11:19:52 · 383 阅读 · 0 评论 -
c++_6 : 构造函数和析构函数
构造函数析构函数赋值函数A() //默认构造函数A(const A &) //默认拷贝构造函数~A() //析构函数A & operator=(const A& a ) //复制拷贝构造韩胡说初始化列表http://www.cnblogs.com/graphics/archive/2010/07/04/1770900.html http://blog.csdn.net/zlb_xid原创 2015-12-13 19:42:40 · 297 阅读 · 0 评论 -
c++_5: 函数的特性
重载void Eat(Beef);void Eat(Fish);void Eat(Chicken);二进制不容许有相同的名字原创 2015-12-13 19:23:40 · 279 阅读 · 0 评论 -
c++_4: 多态_3_纯虚函数和RTTI
多态数组不要以多态的形势,处理数组纯虚函数virtual f() const=0;原创 2015-12-12 22:09:16 · 370 阅读 · 0 评论 -
c++_10: 异常处理
抛出异常创建一个包含错误信息的对象,并出异常throw捕获异常try解决throw的抛出的异常若无try,则程序抛出throw后会退出原创 2015-12-14 00:48:08 · 300 阅读 · 0 评论 -
c++_7: 拷贝构造函数和赋值构造函数
参考: http://blog.csdn.net/lwbeyond/article/details/6202256拷贝构造函数一般变量的赋值int a = 100;int b = a; 拷贝构造函数的过程#include <iostream>using namespace std;class CExample {private: int a;public: //构造函数原创 2015-12-13 22:57:11 · 348 阅读 · 0 评论 -
c++_8: c++_内存模型
参看: http://blog.csdn.net/it_yuan/article/details/24651347内存布局类中的元素成员变量 1. 成员函数 2. 静态成员变量 3. 静态成员函数 4. 虚函数 5. 纯虚函数影响对象大小的因素成员变量 1. 虚函数表指针(_vftptr) 2. 虚基类表指针(_vbtptr) 3. 内存对齐_vftptr、原创 2015-12-13 23:39:13 · 253 阅读 · 0 评论 -
c++_9: 内存管理
malloc/free和new/deletemalloc/ free 无法满足动态对象 的要求,无法完成构造和析构new/delete更安全malloc/free比new/delete效率高原创 2015-12-14 00:21:37 · 287 阅读 · 0 评论 -
c++_10: string类
//自己实现string类的代码 http://blog.csdn.net/moxiaomomo/article/details/6411584#include<iostream>#include<iomanip>using namespace std;class String{ friend ostream& operator<< (ostream&,String&);//重载<<运原创 2015-12-15 21:50:04 · 222 阅读 · 0 评论 -
c++_1: 基础问题
consthttp://blog.csdn.net/Eric_Jo/article/details/4138548定义常量// const定义的内容不可变TYPE const ValueName = value; const TYPE ValueName = value;指针constint b=500;const int *a=&b //指针指向的内容是常量int const *a=&b原创 2015-12-06 18:38:17 · 349 阅读 · 0 评论 -
c++_2: 类的定义
封装,继承,多态封装:类类定义成员变量成员函数public/protetcted/private构造函数和析构函数成员函数的实现内连成员函数:宏不是函数,内联是函数//完整的类示例#include <iostream>using namespace std;class Cat{ public: Cat(int initialAge) //构造函数原创 2015-12-06 20:34:29 · 446 阅读 · 0 评论 -
c++_3: 继承和组合
面向对象封装:隐藏实现细节,使得代码模块化继承:扩展已存在的代码模块(类);它们的目的都是为了—代码重用多态:是为了实现另一个目的——接口重用!封装继承从一般到特殊通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“基类”、“父类”或“超类”。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。多态是允许原创 2015-12-07 11:14:41 · 420 阅读 · 0 评论 -
C语言:位运算
移位运算清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或原操作数:s;掩码:mask与 (&) …… 0 & 0 = 0……. 1 & 0 = 0 ……0 & 1 = 0……1 & 1 = 1 ( AND)1. 清零特定位: (mask中特定位置0,其它位为1,s=s&mask)2 取某数中指定位 (mask中特定位置1,其它位为0,s=s&mask)或 (|)原创 2016-02-01 18:31:45 · 589 阅读 · 0 评论 -
C_1:linux系统基础
linux进程管理每个进程有自己独立的运行空间进程的状态:就绪/运行状态;等待状态(中断);等待状态(不可中断);停止状态;僵死状态进程的属性:PID(进程ID), PPID(进程父ID),PGID(进程组ID),UID(用户ID)创建进程 : fork()=子进程复制父进程的全部(除PID);vfork()=复制部分父进程在子进程中执行新代码: exec()等待进程结束:wait()+原创 2015-12-01 14:42:10 · 429 阅读 · 0 评论 -
c_5:c数组
一维数组int a[10];int *c;c=&a[0] //&a[0]是指向数组第一个元素的指针array[i]=*(array+i)&array[i]=array+i=array[0]+i----------------------------------------------------------------------------int array[10];int *ap=原创 2015-12-03 00:01:32 · 362 阅读 · 0 评论