溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

在C++中對(duì)象作為參數(shù)傳遞和返回的實(shí)現(xiàn)方法

發(fā)布時(shí)間:2020-08-27 09:48:52 來(lái)源:億速云 閱讀:178 作者:小新 欄目:編程語(yǔ)言

在C++中對(duì)象作為參數(shù)傳遞和返回的實(shí)現(xiàn)方法?這個(gè)問(wèn)題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見(jiàn)到的。希望通過(guò)這個(gè)問(wèn)題能讓你收獲頗深。下面是小編給大家?guī)?lái)的參考內(nèi)容,讓我們一起來(lái)看看吧!

在C++中,我們可以將類(lèi)的對(duì)象作為參數(shù)傳遞,還可以像傳遞和返回其他變量一樣從函數(shù)中返回它們;且不需要特殊的關(guān)鍵字或頭文件。下面本篇文章就來(lái)帶大家了解一下,希望對(duì)大家有所幫助。

在C++中對(duì)象作為參數(shù)傳遞和返回的實(shí)現(xiàn)方法

1、將對(duì)象作為參數(shù)傳遞

要將對(duì)象作為參數(shù)傳遞,我們將對(duì)象名作為參數(shù)寫(xiě)入,同時(shí)調(diào)用函數(shù),方法與對(duì)其他變量執(zhí)行是相同的。

基本語(yǔ)法:

函數(shù)名(對(duì)象名);

示例:

#include <bits/stdc++.h> 
using namespace std; 
  
class Example { 
public: 
    int a; 
  
    // 此函數(shù)將對(duì)象作為參數(shù)
    void add(Example E) 
    { 
        a = a + E.a; 
    } 
}; 
int main() 
{ 
  
    // 創(chuàng)建對(duì)象
    Example E1, E2; 
  
    // 兩個(gè)對(duì)象的值都已初始化
    E1.a = 50; 
    E2.a = 100; 
  
    cout << "初始值 \n"; 
    cout << "對(duì)象1的值: " << E1.a 
         << "\n對(duì)象2的值: " << E2.a 
         << "\n\n"; 
  
    // 將對(duì)象作為參數(shù)傳遞給函數(shù)add()
    E2.add(E1); 
  
    // 傳遞給函數(shù)add()后
    cout << "新值 \n"; 
    cout << "對(duì)象1的值: " << E1.a 
         << "\n對(duì)象2的值:" << E2.a 
         << "\n\n"; 
  
    return 0; 
}

輸出:

初始值
對(duì)象1的值:50
對(duì)象2的值:100


新值
對(duì)象1的值:50
對(duì)象2的值:150

說(shuō)明:在此示例中,有一個(gè)類(lèi)具有一個(gè)整型變量“a”和一個(gè)以對(duì)象為參數(shù)的函數(shù)“add”。該add()函數(shù)由一個(gè)對(duì)象調(diào)用,另一個(gè)對(duì)象作為參數(shù)。在函數(shù)內(nèi)部,將參數(shù)對(duì)象的整數(shù)值添加到調(diào)用'add'函數(shù)的整數(shù)值中。在這個(gè)方法中,我們可以將對(duì)象作為參數(shù)傳遞并更改它們;

注:add函數(shù)不返回任何值,因?yàn)槠浞祷仡?lèi)型為void。

2、將對(duì)象作為參數(shù)返回

基本語(yǔ)法:

object = return object_name;

示例:add函數(shù)返回“example”類(lèi)型的對(duì)象(即類(lèi)名),該對(duì)象的值存儲(chǔ)在E3中。

#include <bits/stdc++.h> 
using namespace std; 
  
class Example { 
public: 
    int a; 
  
    // 此函數(shù)將以對(duì)象為參數(shù)并返回對(duì)象
    Example add(Example Ea, Example Eb) 
    { 
        Example Ec; 
        Ec.a = Ec.a + Ea.a + Eb.a; 
  
        // 返回對(duì)象
        return Ec; 
    } 
}; 
int main() 
{ 
    Example E1, E2, E3; 
  
    // 兩個(gè)對(duì)象的值都已初始化
    E1.a = 50; 
    E2.a = 100; 
    E3.a = 0; 
  
    cout << "初始值 \n"; 
    cout << "對(duì)象1的值: " << E1.a 
         << " \n對(duì)象2的值: " << E2.a 
         << "\n對(duì)象3的值: " << E3.a 
         << "\n\n"; 
  
    //將對(duì)象作為參數(shù)傳遞給函數(shù)add()。
    E3 = E3.add(E1, E2); 
  
    // 將對(duì)象作為參數(shù)傳遞后更改的值
    cout << "新值 \n"; 
    cout << "對(duì)象1的值: " << E1.a 
         << " \n對(duì)象2的值: " << E2.a 
         << " \n對(duì)象3的值: " << E3.a 
         << "\n"; 
  
    return 0; 
}

輸出:

初始值
對(duì)象1的值:50
對(duì)象2的值:100
對(duì)象3的值:0


新值
對(duì)象1的值:50
對(duì)象2的值:100
對(duì)象3的值:200

說(shuō)明:在這個(gè)例子中,我們可以看到兩個(gè)方面,即我們?nèi)绾蝹鬟f對(duì)象以及返回它們。當(dāng)對(duì)象E3調(diào)用add函數(shù)時(shí),它傳遞另外兩個(gè)對(duì)象,即E1和E2作為參數(shù)。在函數(shù)內(nèi)部,聲明了另一個(gè)對(duì)象,它計(jì)算所有三個(gè)變量的總和并將其返回給E3。

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)在C++中對(duì)象作為參數(shù)傳遞和返回的實(shí)現(xiàn)方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI