[源碼下載]
作者: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
[源碼下載]