标准C++编程笔记day01 内联、new/delete、引用、转换
内联函数(inline):用函数已被编译好的二进制代码替换对函数的调用指令。
只有频繁调用的简单函数才适合内联,稀少被调用的复杂函数和递归函数都不适合内联。
编译生成.s的汇编代码:g++ -S ***.cpp
直接输出指针a地址值:count<<(void*)a;
以数组形式new的内存指针 int *a=new int [10];,也要以数组形式去delete,如 delete a[];
当指针为空时,delete 不会出错 ,但指针为野指针时,delete会出错。
标准异常处理:
try{
//代码
}
catch(exception& ex)
{
cout<<ex.what()<<endl;
}
从已有的内在中分配一块空间:
int *a=new int[5];
int *a1=new (a+1)int(10);//从a的第2个元素位置分配1个Int空间,初始化为10,与a[1]是同一段内存,a[1]也改为10
//a1是在a中的一段内存,所以,a1不需要单独释放,a释放就把a1释放了。
引用(别名):
int a=10;
int &r=a;//一般引用
int *pa=new int(20);
int *&rpa=pa;//指针引用
int arr[3]={0};
int (&rarr)[3]=arr;//数组引用
类型静态转换:static_cast<int>(char ch)
学类型转换:const_cast<int>(char ch);//将const char转为int 可修改。
const volatile int a;//读取常量京华后的值,真实值。
dynamic_cast<>() 父子类之间的转换。
C++中,string类型可直接使用 ==,>,<,>=,<=运算符。
获取string长度:str.length()。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。