C、C++二维数组
摘要:a[m][n],表示m个长度为n的一维数组。 a[3][4],表示3个长度为4的一维数组。 c++ vector类似 如 vector<vector<int>> a(3, vector<int>(4, 0)), 表示3个长度为4的一维数组
阅读全文
posted @
2020-02-21 18:21
ximenchuixie
阅读(126)
推荐(0)
c++多态及实现原理
摘要:https://www.cnblogs.com/cxq0017/p/6074247.html 通过虚函数实现,普通函数在编译过程中即确定了函数的地址,虚函数的函数地址是在程序运行的时候确定的,有虚函数的类在对象初始化的时候会生成一个虚函数表和虚函数指针,虚函数指针指向此类的虚函数表,所以当一个对象调
阅读全文
posted @
2019-03-16 06:10
ximenchuixie
阅读(160)
推荐(0)
c++基本语法
摘要:&传引用 字符串:(类比OC中NSString) string就是一个字符数组 #include<string> string a; a.push_back('m'); a.pop_back(); a.size(); a.length(); a[1]='x'; if(a.find('x') != s
阅读全文
posted @
2018-07-10 23:17
ximenchuixie
阅读(227)
推荐(0)
const 用法
摘要:static NSString * const testString = @"google"; //表示testString这个指针不能被修改,如若对testString赋值则会报错:testString = @"hello";编译器会报错staticNSStringconst*testString...
阅读全文
posted @
2015-09-09 14:34
ximenchuixie
阅读(172)
推荐(0)
c++ static成员
摘要:static 成员通常不能在类的定义体重初始化有一种例外,const static成员可以在定义体内初始化,并且可以用于构造函数将函数声明为const表示该函数不能修改其所属的对象
阅读全文
posted @
2013-09-30 23:07
ximenchuixie
阅读(134)
推荐(0)
c++ 异常处理
摘要:异常处理: throw, try catch抛出异常都是已知的异常异常不处理的话(catch)程序会自行调用terminate函数来终止程序。
阅读全文
posted @
2013-09-30 23:03
ximenchuixie
阅读(160)
推荐(0)
c++ cout cin, 命名空间
摘要:cout是包含格式化输入输出流的头文件("<<"符号在该头文件中定义?)用命名空间可以避免程序员因使用与系统重名的名字而引发的冲突。
阅读全文
posted @
2013-09-30 22:59
ximenchuixie
阅读(607)
推荐(0)
c++变量声明、定义,const变量
摘要:变量声明和定义的主要区别:声明不分配存储空间,定义分配存储空间。变量可以声明多次,但只能定义一次(一个变量只能在一个源文件中定义)声明通常放在头文件(.h)中,定义放在源文件(.cpp)中变量声明(纯声明,有extern关键字):extern int i; //不分配存储空间定义:int i; //无extern关键字,分配存储空间extern int i = 1; //虽然有extern,但是变量被初始化,还是变量的定义(变量的定义其实已经包含变量的声明,此处“定义”即为包含声明的定义,也可理解为变量定义必然包含一次声明)区别变量声明和定义的方法:变量声明:含有extern关键字且变量...
阅读全文
posted @
2013-09-15 01:38
ximenchuixie
阅读(1153)
推荐(0)
通过sizeof获得数组长度的方法
摘要:int a[20];int len = sizeof(a)/sizeof(*a); //值为20,即数组长度为20注:sizeof是一个操作符,sizeof的值在编译时确定
阅读全文
posted @
2013-09-10 01:09
ximenchuixie
阅读(527)
推荐(0)
c++ vector, 迭代器
摘要:现代c++尽量使用vector(容器)和迭代器(相当于指针),少使用数组和指针,除非对程序执行效率有很高的要求。容器优点,易于扩展,可通过push_back方法动态添加元素,数组不能动态添加元素。用法:例:vector a;for(vertor::iterator ita = a.begin(); ita != a.end(); ita++){ *ita = 0;}
阅读全文
posted @
2013-09-09 01:27
ximenchuixie
阅读(615)
推荐(0)
const对象,指向const对象的指针 和 const 指针
摘要:const对象:const对象声明时必须赋初值,该值在编译阶段确定,不可在程序中修改。const修饰符既可放在类型名前也可放在类型名后,通常放在类型名前。不过放在类型名后易于理解。const int a = 7;int b = 8;int array[a];//合法, a是const变量,值在编译阶段确认int arr[b]; //不合法,b是个普通变量,值没有在编译阶段确定指向const对象的指针:可理解为“自认为指向const对象的指针”,其实际所指向的对象不一定是const对象不能通过指向const对象的指针修改其指向的对象的值,即使该对象为非const对象。指针本身可以赋其他值,由于指
阅读全文
posted @
2013-09-07 17:31
ximenchuixie
阅读(326)
推荐(0)
数组名、指针区别
摘要:1)数组名指代的实体是一种数据结构,这种数据结构就是数组。如int a[10]相当于int[10] a, a是int[10]数据结构。因此sizeof(a)的值为40(4*10)。而如果声明 int* a的话sizeof(a)的值为4(指针占内存的大小)。2)数组名可以转换成指针。3)作为函数形参的数组名就是指针。
阅读全文
posted @
2013-08-05 21:58
ximenchuixie
阅读(177)
推荐(0)
c++ 函数指针
摘要:示例:int MyMax(int a, int b){return a + b;}main(){int (*Func)(int, int);Func = MyMax; //函数名跟数组名一样,表示函数代码的首地址,因此可以直接赋值给函数指针cout<<(*Func)(3,4)<<endl;}注:普通的函数名其实就是一个常量函数指针,例如 int MyMax(int a, int b), 以 (*MyMax)(3,4) 这种方式调用,C语言的发明者为方便代码书写也允许MyMax(3,4)这种调用。函数名与函数指针http://www.programfan.com/b...
阅读全文
posted @
2013-06-13 00:44
ximenchuixie
阅读(135)
推荐(0)
c++ 模版,函数模版,类模版
摘要:模板意思:把数据类型当作参数#include<iostream>using namespace std;template <class T> //函数模板T mymax(T a, T b){ if (a > b) return a; else return b;}template <class T> //类模板class Person{public: T a; T b; Person() {}; Person(T x, T y);T XMax();};template ...
阅读全文
posted @
2013-06-11 01:16
ximenchuixie
阅读(202)
推荐(0)