2011-11-30 1 views
-1

array^type의 C++에서 속성을 선언하는 데 문제가 있습니다.배열의 속성 <ref struct structname ^>^type

오류 C2556 : 'CLI :: 배열^네임 스페이스 :: 클래스 :: 속성 :: 얻을

나는 이런 식으로 ..

array<ref struct structname^>^ variable = gcnew array<ref struct structname^>(10); 


property array<ref struct structname^>^ PROPERTY 
{ 
array<ref struct structname^>^ get(); 
void set(); 
} 

array<ref struct structname^>^ class::get() 
{ 
return variable; 
} 

void class::set(array<ref struct structname^>^ x) 
{ 
//code here 
} 

는이 같은 오류가 발생했다 (무효) : CLI :: 배열^네임 스페이스 :: 클래스 :: PROPERTY :: 취득 (무효) '

+0

C에서 C++/CLI로 직접 마이그레이션 하시겠습니까? 아니면 'struct structname'이 나타날 때마다'ref struct '를 추가해야할까요? –

+0

클래스가 실제로'클래스 '라고 부르기를 희망합니다. 아니면 나는 심지어 이렇게 컴파일 된지 궁금해 할 것입니다. –

답변

2

엉덩이를 한 후' 기능에 과부하가 에서 반환 형식 만 다르다 ' umptions 및 다양한 컴파일러 오류를 정리, 나는 당신이 볼 컴파일러 오류로 끝나지 않는다 (아래 코드 참조). 더 나은 대답을 원하면 실제 코드를 게시하여 다른 사람들이 컴파일 할 때와 동일한 오류가 표시되도록해야합니다.

ref struct structname 
{ 

}; 

ref class myclass 
{ 
    static array<structname^>^ variable = gcnew array<structname^>(10); 

    property array<structname^>^ PROPERTY 
    { 
     array<structname^>^ get(); 
     void set(array<structname^>^ x); 
    } 
}; 

array<structname^>^ myclass::PROPERTY::get() 
{ 
    return variable; 
} 

void myclass::PROPERTY::set(array<structname^>^ x) 
{ 
    //code here 
}