2010-11-25 56 views
2

我找到了C Structs和C#類的答案,但是卻在C++中空手而回。 編輯:在C中,你不能。 在C#中它是GetProperties()方法。我可以循環訪問C++類的(公共)屬性嗎?

上下文:我有一個C++類具有公共屬性(讓我們說一個點與X,Y,Z)。我想通過UDP將這些屬性發送給Java客戶端。我的想法是創建一個帶有三個屬性的字節(char *)緩衝區(我處理了字節序問題)。

prepareForUdp(char * buffer) 
{ 
    int offset = 0; 
    int offsetValue = 4; 
    char tempBuffer[16]; 

    memcpy(tempBuffer, &X_, sizeof(X_)); 
    offset = offset + offsetValue; 
    memcpy(tempBuffer + offset, &Y_, sizeof(Y_)); 
    offset = offset + offsetValue; 
    memcpy(tempBuffer + offset, &Z_, sizeof(Z_)); 
    offset = offset + offsetValue; 

    memcpy(buffer, tempBuffer, sizeof(buffer)); 
} 

我希望我的界面是進化,因爲點可能獲得第四,五,或第N維的,我希望我的prepareForUdp()方法是(相對)通用。

我的問題是:我如何通過我的屬性循環(或迭代)?

+1

C是什麼方法? – lijie 2010-11-25 14:31:47

+1

也許如果你發佈了C結構的'答案',它可能會照亮你認爲是答案的東西。我看不出你將如何在C中解決它,並且不能在C++中執行相同的操作 – Jamie 2010-11-25 14:32:48

+0

對此,我很抱歉,傑米。 C的答案是「你不能」......我會編輯我的第一篇文章。 – 2010-11-25 14:38:25

回答

5

C++中沒有反射。所以,答案是,你不能:)

相關問題