以下の 2 つのコピー機能の違いは何ですか? それらの間に違いはないようです。具体的には、void*& と void* の比較です。
では、T*& と T* の違いは何でしょうか? いつどちらを使用するのですか?また、const パラメータを受け入れるようにするとどうなりますか? 違いは何ですか?
#include <iostream>
void Copy(void* Source, void* Destination, int Size)
{
//memcpy(Destination, Source, Size);
char* S = static_cast<char*>(Source);
char* D = static_cast<char*>(Destination);
*D = *S;
}
void Copy2(void* &Source, void* &Destination, int Size)
{
char* S = static_cast<char*>(Source);
char* D = static_cast<char*>(Destination);
*D = *S;
}
int main()
{
int A = 2;
int B = 5;
int C = 7;
void* pA = &A;
void* pB = &B;
void* pC = &C;
Copy(pA, pB, 1);
Copy2(pA, pC, 1);
std::cout<< B <<std::endl;
std::cout<< C <<std::endl;
}
上記の両方が「2」を出力します。どちらも同じじゃない?