欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中的引用與高級函數(shù)詳解

 更新時(shí)間:2023年07月15日 10:05:51   作者:Wei&Yan  
這篇文章主要介紹了C++中的引用與高級函數(shù)詳解,概念:引用是為已存在的變量取了一個(gè)別名,引用和引用的變量共用同一塊內(nèi)存空間,需要的朋友可以參考下

引用

定義:給變量起別名。

語法:數(shù)據(jù)類型&別名=原名。

int a=10;
int &b=a;
//(此時(shí)的a和b都指向了同一塊空間,都可對里面的元素進(jìn)行修改)

 對這兩個(gè)變量名字任意一個(gè)進(jìn)行修改,兩變量的結(jié)果都會發(fā)生變化

 引用注意事項(xiàng)

1.引用必須初始化

int a=10; int &b=a;(必須等于一個(gè)變量)

2.引用初始化后,不可以改變(永遠(yuǎn)指向最初初始化指向的空間),初始化后只能進(jìn)行賦值操作

int a=10;
int c=20;
int &b=a;
b=c;(將c賦值給b后,b和a的值都為20,但b指向的空間依然和a一樣,不發(fā)生變化)

 引用的做函數(shù)參數(shù)

作用:函數(shù)傳參時(shí),可以利用引用的技術(shù)讓形參修飾實(shí)參

優(yōu)點(diǎn):可以簡化指針直接修改實(shí)參

/1.引用做函數(shù)的參數(shù)
void sweap(int& a, int& b)//可以當(dāng)作函數(shù)傳參的,傳進(jìn)去的是自己本身,在函數(shù)中對其進(jìn)行修改后變量本身也會被修改(類似于地址傳參)
{
	int temp = a;
	a = b;
	b = temp;
}

 引用做函數(shù)的返回值:

int& Add(int a, int b)
{
    static int c = a + b;//靜態(tài)變量,存放在全局區(qū)域
    return c;
}

常量引用

void print(const int& val)
{//為了防止引用傳參的時(shí)候變量在函數(shù)中被修改而不影響自己本身,可以加入const。這樣變量就不會被修改
    val=20
    cout << "val=" << val << endl;
}

引用的本質(zhì):

在c++內(nèi)部實(shí)現(xiàn)一個(gè)指針常量。

int a=10;
int &b=a;//int *const b=&a;
若直接賦值給一個(gè)常數(shù)
const int &b=10;//int temp=10;const int &b=temp;
加入const后變?yōu)橹蛔x,不可修改。

 函數(shù)高級

1.函數(shù)的默認(rèn)參數(shù)

在c++中,函數(shù)的形參列表中的形參可以有默認(rèn)參數(shù)

語法:返回值類型 函數(shù)名(參數(shù)=默認(rèn)值){}

int func(int a, int b = 20)
{
	return a + b;
}

注意事項(xiàng):

注意:
1.如果某個(gè)位置已經(jīng)有了默認(rèn)參數(shù),那么從這個(gè)位置開始往后,從左到右都必須有默認(rèn)值
eg:
b有了默認(rèn)值,后面的所以形參都要有默認(rèn)值
int test1(int a, int b = 20, int c);
2.如果函數(shù)聲明有默認(rèn)參數(shù),函數(shù)實(shí)現(xiàn)就不能有默認(rèn)參數(shù)
  聲明和實(shí)現(xiàn)只能有一個(gè)有默認(rèn)參數(shù)
int test2(int a = 20, int b = 239);
int test2(int a, int b)
{
}
int fun(int a=10,int b=20)
{
   retutn a+b;
}
int a = 10, b = 29;
	如果自己傳入數(shù)據(jù)就用自己的數(shù)據(jù),如果沒有那么用默認(rèn)數(shù)據(jù)。
	//cout << "a+b=" << func(a,20) << endl;//結(jié)果=39
	//cout << "a+b=" << func(a) << endl;//結(jié)果=30
	return 0;

 2.函數(shù)占位參數(shù)

c++中函數(shù)形參列表里面可以有占位參數(shù),且傳參的時(shí)候也當(dāng)作一個(gè)形參,必選滿足其形參數(shù)量
 占位參數(shù)中可以有默認(rèn)值
void test3(int a, int =20)
{
}

3.函數(shù)重載:

作用函數(shù)名可以相同,提高復(fù)用性
條件:
同一作用域下
函數(shù)名稱相同
函數(shù)參數(shù)類型行不通,或者參數(shù)個(gè)數(shù)不同,或者順序不同

//void func(double a, int b);
//void func(int a, double);
//函數(shù)重載的注意事項(xiàng):
//a.引用作為函數(shù)的重載的條件
void func(int &a);//int &a=10; 不合法
//調(diào)用:func(a);
void func(const int& a);//const int &a=10; 合法
//調(diào)用:func(10);
//b.函數(shù)重載碰到默認(rèn)參數(shù)
void func2(int a);
void func2(int a, int b = 10);
//func2(10)//1,2都可以去調(diào)用,所以這樣調(diào)用行不通。
//當(dāng)函數(shù)重載碰到默認(rèn)參數(shù)的時(shí)候會出現(xiàn)二義性。
//func2(10,20)//這種情況下可以行得通。

到此這篇關(guān)于C++中的引用與高級函數(shù)詳解的文章就介紹到這了,更多相關(guān)C++高級函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++實(shí)現(xiàn)分?jǐn)?shù)計(jì)算器

    C++實(shí)現(xiàn)分?jǐn)?shù)計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)分?jǐn)?shù)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語言中#pragma?once的作用

    C語言中#pragma?once的作用

    這篇文章主要介紹了C語言中#pragma?once的作用,pragma once 一般由編譯器提供保證,更多相關(guān)內(nèi)容在下面文章詳細(xì)展開需要的小伙伴可以參考一下
    2022-05-05
  • C語言中調(diào)用Swift函數(shù)實(shí)例詳解

    C語言中調(diào)用Swift函數(shù)實(shí)例詳解

    這篇文章主要介紹了C語言中調(diào)用Swift函數(shù)實(shí)例詳解的相關(guān)資料,實(shí)現(xiàn)該功能可以通過定義全局的指向Blocks的對象指針來實(shí)現(xiàn),需要的朋友可以參考下
    2017-07-07
  • C++入門指南之貪吃蛇游戲的實(shí)現(xiàn)

    C++入門指南之貪吃蛇游戲的實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于C++入門指南之貪吃蛇游戲?qū)崿F(xiàn)的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),可以讓大家能短時(shí)間內(nèi)寫出一個(gè)貪吃蛇,需要的朋友可以參考下
    2021-10-10
  • C++設(shè)計(jì)模式之策略模式(Strategy)

    C++設(shè)計(jì)模式之策略模式(Strategy)

    這篇文章主要為大家詳細(xì)介紹了C++設(shè)計(jì)模式之策略模式Strategy ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Opengl?ES之FBO幀緩沖對象使用詳解

    Opengl?ES之FBO幀緩沖對象使用詳解

    這篇文章主要為大家介紹了Opengl?ES之FBO幀緩沖對象使用詳解,<BR>有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • C語言實(shí)現(xiàn)棧的示例詳解

    C語言實(shí)現(xiàn)棧的示例詳解

    棧是一種特殊的線性表,只允許從一端進(jìn)出數(shù)據(jù),稱為后進(jìn)先出,先進(jìn)后出。本文主要為大家介紹了C語言實(shí)現(xiàn)棧的示例代碼,感興趣的可以了解一下
    2022-06-06
  • Qt中QStackedWidget控件的實(shí)現(xiàn)

    Qt中QStackedWidget控件的實(shí)現(xiàn)

    QStackedWidget是Qt框架中一個(gè)非常有用的控件,它允許你堆疊多個(gè)窗口部件,本文主要介紹了Qt中QStackedWidget控件的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • Qt圖形圖像開發(fā)之QT滾動(dòng)區(qū)控件(滾動(dòng)條)QScrollArea的詳細(xì)方法用法圖解與實(shí)例

    Qt圖形圖像開發(fā)之QT滾動(dòng)區(qū)控件(滾動(dòng)條)QScrollArea的詳細(xì)方法用法圖解與實(shí)例

    這篇文章主要介紹了Qt圖形圖像開發(fā),QT滾動(dòng)區(qū)控件(滾動(dòng)條)QScrollArea的詳細(xì)方法用法圖解與實(shí)例,需要的朋友可以參考下
    2020-03-03
  • C++ continue和break語句

    C++ continue和break語句

    這篇文章主要介紹了C++ continue和break語句,文章圍繞continue和break語句的相關(guān)資料展開詳細(xì)內(nèi)容,需要的朋友可以參考一下,希望對大家有所幫助
    2021-11-11

最新評論