标准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()。



标准C++编程笔记day01 内联、new/delete、引用、转换,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。