c++/oop---引用/动态内存/内联函数/函数重载

c++/oop

引用

就相当于是原变量

int & a = b

相当于是别名

一个神奇的写法:引用作为函数返回值

1 int n = 4;
2 int & SetValue() {
3 return n;
4 }
5 int main() {
6 SetValue() = 40;
7 cout << n;
8 return 0;
9 }

可以改变想要改的对象

比如说重定义 [] 

 

给函数传参数的时候写引用,可以改变实参的值

实现类似指针的功能

常引用

const int  & r  = n

const T 类型的常变量和 const T & 类型的引用则不能用来初始化 T & 类型的引用,除非进行强制类型转换

不能通过常引用修改其引用的变量,但可以修改变量改变常引用的值

int n=3;
const int & r = n;
r = 5; //error
n = 4; //ok

此时n=r=4

 

new 动态内存分配

<type> *<name_p> = new <type>([下标])

Type 数据类型,也可以是数组,指针类型要与数据类型一致

p 指针,指向内存的第一个地址

如果 p = NULL , 说明内存不够了

但是开数组的时候可以直接写 P[0] P[100] 这样

    int *p = new int;
    *p = 5;
    cout<<p<<' '<<*p<<endl;
    //0x1ee86b70 5
    
    delete p;
    
    int *s = new int[5];
    s[1]=5;
    cout<<s<<' '<<s[1]<<endl; 
    //0x1ee16b70 5
    delete [] s;

 

delete 释放空间

 delete p 删除指针 p 指向的空间

delete [] s 删除数组

此时指针没有被删除,可以重新赋值

 

内联函数

加 inline ,能变快

原理是把函数语句放到调用的地方,这样减少了调用函数的时间

 

函数重载

多个函数,参数不同,名字相同,编译器认得出

 

函数的缺省参数

 

定义的时候给参数缺省值,如果调用时不传参那就用缺省值

只能是最右边的连续若干个参数,不写的时候一起不写

真的鸡肋,可能写庞大的程序时有点用

“函数参数可缺省的目的在于提高程序的可扩充性。 即如果某个写好的函数要添加新的参数,而原先那些调用该函数的语句, 未必需要使用新增的参数,那么为了避免对原先那些函数调用语句的修 改,就可以使用缺省参数。”

 

posted @ 2022-02-25 19:03  liankewei123456  阅读(26)  评论(0编辑  收藏  举报