C/C++知识大纲(只有作者看得懂的笔记)
c标准库部分冷门函数。
stdio.h char buf[256];
sscanf(buf,"%s",&buf);
sprintf(buf,"Name: %s","xxx");
math.h ceil()向下取整,floor()向上取整
time.h 获取系统时间
struct tm * localtime(const time_t *tod); //将“秒”纸转成“年月日时
time_t mktime(struct tm *tptr); //将“年月日时分秒”转成“
time_t time(time_t * tod); //取得当前时间
struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_ydat;
}
time_t now=time(0); //获取系统;
/*计数毫秒级时间*/
time_t start = time(NULL);
for(i=0;i<10000;i++)
{
//...
}
time_t end =time(NULL);
int avg =(end-start)/10000;
stdlib.h
double atof(const char *s);
int atoi(const char *s);
int rand(void);
void srand(unsigned int seed);
int system(const char *s);
string.h
memcpy(dst,scr,n);从src复制n个字节到dst, memcmp(a,b,n);比较n个字节的内容。memmove(dst,src,n)移动数据。
文件操作;
FILE *fopen(const char *filename,const char *mode);
int fclose(FILE *stream);
size_t fwrite(const void *buf ,size_t size,size_t nelem,FILE * stream);
size_t fread(const void *buf ,size_t size,size_t nelem,FILE * stream);
fprintf(); fgets();
fseek(fp,n,str); n跳到100个字节,SEEK_SET(跳到第n个位置)
SEEK_END(跳到第n个位置)SEEK_CUR(跳到当前前n个位置)SEEK_CUR(跳到当前后n个位置)
面向对象OO思想:
1,类与对象,类的封装特性public,private,protect。
2,this指针。
3,类的分离式写法
class Object
{
public:
int x;
void Test();
}
void Object::Test(){printf(".........");}
4,*const对象与const 函数
void Test()const{ ... }
void Test(){ ... } const对应参数列表const否则报错
5,构造与折构
构造初始化特殊写法。
Circle::Circle():x(0),y(0),radius(1);
6,动态创建对象new delete ,对比malloc与free多了初始化
7,继承
class Base
{
protected:
void test(){}
};
class child:public base
{
public:
void test(){}
};
子类继承父类,public可被继承,private不可继承,protect在不继承的情况同private,可继承被公有继承
8,虚拟继承
9,当子类继承与父类,子类对象构造时,先调用父类构造函数,之后调用自己的构造函数。折构过程相反。
10,多继承,子类继承多个父类。
11,继承函数与纯虚函数,c++纯虚函数实现设计模式中的接口,地位等同java的interface,c的回掉机制。总是被子类继承。
用于声明在子类完成这些接口。
12,保护继承,私有继承。
13,拷贝构造函数。默认拷贝/深度拷贝
14,static定义全局变量和函数
static在类中声明变量与普通全局声明相同。类外定义域普通全局变量定义一样;
static声明全局函数同上,无this指针,
15,友元,class A{ friend void fun () ;friend class} ;
B是A的友元,B可访问A,A不可访问B,友元关系单向
16,多态,运算符重载。
17,内部类(避免类名冲突),命名空间
namespace ID{ }