2012-03-30 85 views
0

我要聲明亨德爾的數組如下面的代碼:如何聲明handel數組?

using namespace System::Drawing; 
ref class B 
{ 
    Bitmap^ b[]; 

    B() 
    { 
     b = new Bitmap^[10]; 
    } 
}; 

但是編譯

error C2728: 'System::Drawing::Bitmap ^' : a native array cannot contain this managed type 
error C4368: cannot define 'b' as a member of managed 'B': mixed types are not supported 
error C2728: 'System::Drawing::Bitmap ^' : a native array cannot contain this managed type 
error C2440: '=' : cannot convert from 'System::Drawing::Bitmap ^*' to 'System::Drawing::Bitmap ^[]' 

有人能正確地告訴我的方式來聲明亨德爾的數組時,它拋出的錯誤?

非常感謝!

牛逼& T組

+8

我寧願有一個莫扎特而不是亨德爾。你的意思是處理? – crashmstr 2012-03-30 18:15:17

+0

String handelsWorks [] = {「Nero」,「Almira」,「彌賽亞」} :)只是一個笑話。 – Almo 2012-03-30 18:15:59

+2

此外,我建議只是使用谷歌搜索你的第一個錯誤,看看問題。您將在這裏引導解決方案:http://stackoverflow.com/questions/995434/arrays-of-strings-in-managed-c – 2012-03-30 18:22:27

回答

5

您需要使用gcnew 因爲這是一個.Net數組,而不是一個C++數組 ,因爲這是一個託管類型的數組,而不是一個本機類型的數組。我沒有一個方便測試此代碼的編譯器,但我相信這將是實現它的方法。

using namespace System::Drawing; 
ref class B 
{ 
private: 
    array<Bitmap^>^ b; 

public: 
    B() 
    { 
     b = gcnew array<Bitmap^>(10); 
    } 
}; 
+1

需要'array ^b;' – crashmstr 2012-03-30 18:30:18

+0

@crashmstr好的。我認爲,沒有經過測試的帖子肯定會碰到一些類型的東西。它現在已經修復。 – pstrjds 2012-03-30 18:39:09

+0

@pstrjds:太棒了,那是我需要的東西。非常感謝 ! – TTGroup 2012-04-01 02:02:34

1

我可能會使用泛型集合類型,而不是一個數組。

不知道什麼是漢德爾。