程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 不可或缺 Windows Native (12),windowsnative

不可或缺 Windows Native (12),windowsnative

編輯:C++入門知識

不可或缺 Windows Native (12),windowsnative


[源碼下載]


不可或缺 Windows Native (12) - C++: 引用類型



作者:webabcd


介紹
不可或缺 Windows Native 之 C++

  • 引用類型



示例
CppReference.h

#pragma once 

#include <string>

using namespace std;

namespace NativeDll
{
    class CppReference
    {
    public:
        string Demo();
    };
}


CppReference.cpp

/*
 * 引用類型
 *
 * 引用也可以稱之為“別名”
 *
 * 注:
 * 1、聲明引用時,必須同時初始化
 * 2、被引用的對象必須已經分配了空間
 * 3、被引用的對象不能為地址,即指針變量、數組變量等不能被引用
 */

#include "pch.h" 
#include "CppReference.h" 

using namespace NativeDll;

void reference_demo1();
void reference_demo2();
void reference_demo3();

string CppReference::Demo()
{
    // 引用的用法
    reference_demo1();

    // 引用和指針的區別
    reference_demo2();

    // “引用”也可以作為函數的返回值
    reference_demo3();


    return "看代碼及注釋吧";
}



// 引用的用法
void reference_demo1()
{
    int a1, a2 = 10;
    // &b - 代表定義一個名為 b 的引用。此處的“&”是類型說明符,表示 b 是一個引用
    // 聲明了一個引用,則必須同時為其初始化
    int &b = a1; // b 是 a1 的引用,即 b 是 a1 的別名
    
    b = a2; // a1 和 b 都等於 10
    a1 = 100; // a1 和 b 都等於 100
    b = 1000; // a1 和 b 都等於 1000
}



// 引用和指針的區別
void reference_demo2()
{
    int m = 1;
    int n = 2;

    int *x = &m;
    int *y = &n;

    int &s = m;
    int &t = n;

    void my_swap(int *i, int *j); // 通過指針,交換兩個整型
    void my_swap(int &i, int &j); // 通過引用,交換兩個整型

    my_swap(x, y); // 調用 void my_swap(int *i, int *j); 結果:m=2,n=1
    my_swap(s, t); // 調用 void my_swap(int &i, int &j); 結果:m=1,n=2
    my_swap(m, n); // 調用 void my_swap(int &i, int &j); 結果:m=2,n=1
}

// 通過指針,交換兩個整型
void my_swap(int *i, int *j)
{
    // 形參是實參的副本,這裡會將指針復制一份出來,函數調用結束後立即釋放

    int temp;
    temp = *i;
    *i = *j;
    *j = temp;
}

// 通過引用,交換兩個整型
void my_swap(int &i, int &j)
{
    // 如果采用“引用”的方式,i 和 j 其實就是對應的那兩個實參本身

    int temp;
    temp = i;
    i = j;
    j = temp;
}



// “引用”也可以作為函數的返回值
int &reference_function();
int reference_i = 0;
void reference_demo3()
{
    reference_function() = 999;

    // 此時 reference_i 的值為 999
}

int &reference_function()
{
    return reference_i;
}



OK
[源碼下載]

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved