Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Contoh ini menunjukkan bagaimana Anda dapat menggunakan ... sintaks dalam C++/CLI untuk mengimplementasikan fungsi yang memiliki jumlah variabel argumen.
Catatan
Topik ini berkaitan dengan C++/CLI. Untuk informasi tentang menggunakan ... dalam ISO Standard C++, lihat Templat elipsis dan variadik serta Elipsis dan argumen default dalam ekspresi Postfix.
Parameter yang menggunakan ... harus menjadi parameter terakhir dalam daftar parameter.
Contoh
Kode
// mcppv2_paramarray.cpp
// compile with: /clr
using namespace System;
double average( ... array<Int32>^ arr ) {
int i = arr->GetLength(0);
double answer = 0.0;
for (int j = 0 ; j < i ; j++)
answer += arr[j];
return answer / i;
}
int main() {
Console::WriteLine("{0}", average( 1, 2, 3, 6 ));
}
3
Contoh Kode
Contoh berikut menunjukkan cara memanggil dari C# fungsi Visual C++ yang mengambil jumlah variabel argumen.
// mcppv2_paramarray2.cpp
// compile with: /clr:safe /LD
using namespace System;
public ref class C {
public:
void f( ... array<String^>^ a ) {}
};
Fungsi f ini dapat dipanggil dari C# atau Visual Basic, misalnya, seolah-olah itu adalah fungsi yang dapat mengambil jumlah variabel argumen.
Di C#, argumen yang diteruskan ke ParamArray parameter dapat dipanggil oleh jumlah variabel argumen. Sampel kode berikut ada di C#.
// mcppv2_paramarray3.cs
// compile with: /r:mcppv2_paramarray2.dll
// a C# program
public class X {
public static void Main() {
// Visual C# will generate a String array to match the
// ParamArray attribute
C myc = new C();
myc.f("hello", "there", "world");
}
}
Panggilan ke f di Visual C++ dapat melewati array yang diinisialisasi atau array panjang variabel.
// mcpp_paramarray4.cpp
// compile with: /clr
using namespace System;
public ref class C {
public:
void f( ... array<String^>^ a ) {}
};
int main() {
C ^ myc = gcnew C();
myc->f("hello", "world", "!!!");
}