vps网站管理软件,做网站阜新,余姚网站如何进行优化,安顺做网站的公司C核心编程
1. 内存分区模型
代码区#xff1a;存放函数的二进制代码#xff0c;由操作系统进行管理全局区#xff1a;存放全局变量和静态变量以及常量栈区#xff1a;由编译器自动分配释放#xff0c;存放函数的参数值#xff0c;局部变量等堆区#xff1a;由程序员分…C核心编程
1. 内存分区模型
代码区存放函数的二进制代码由操作系统进行管理全局区存放全局变量和静态变量以及常量栈区由编译器自动分配释放存放函数的参数值局部变量等堆区由程序员分配和释放若程序员不释放程序结束由操作系统释放
2. 内联函数
在C中使用关键字 inline 可以将函数定义为内联函数。内联函数的特点是它们的定义必须在每个调用它们的源文件中可见通常这意味着函数的定义通常会写在头文件.h中。
目的在编译时将函数的代码嵌入到调用它们的地方而不是像普通函数一样在链接时进行函数调用。因此如果函数定义不在可见范围内编译器无法将其内联到调用点。
在头文件中声明内联函数的原型函数声明并在同一头文件中定义函数的具体实现。
#构造函数可以直接赋初值构造函数特性
complex (double r 0, double i 0) : re(r),im(i){}1. 不带指针的构造函数多半不需要写析构函数 如果class里面带指针就必须有拷贝构造和拷贝复制
2. 写在class里面的方法是内联函数建议编译器内联最后还是看编译器
3. 数据一定要放在private里面构造函数可以放在private里面详情见后
以下的常成员函数在常量对象调用时起作用若没加 const常量对象调用时会报错 ,所以该加const的地方一定要加
double real() const { return re; } #常成员函数 参数传递尽量用引用返回也是 同一个class的不同object之间互为友元firend) 临时对象 typename () 如果class里面带指针就必须有拷贝构造和拷贝复制 浅拷贝只拷贝指针
b a,如果使用编译器默认的函数是浅拷贝有可能导致内存泄漏
3. 拷贝构造函数 深拷贝:复制内存拷贝赋值函数把左边拷贝的右边分三步1. 先把右边清空2. 重新分配右边跟左边一样大的内存3. 拷贝 变量可以声明多次但只能定义一次
extern int a; #声明
extern int a 0; #定义静态函数属于类而不属于对象
模板类在编译时要把.h文件和.cpp文件都要添加