2010-11-25 58 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++中没有反射。所以,答案是,你不能:)

相关问题