简而言之,我的目标是让foo [bar]返回type1,而foo [bar] =返回type2.
我正在用C++编写一个对象,它的出现很顺利,但是我只希望做一件小事,但似乎不可能.
我的对象是一个存储类,所以我使用数组下标来访问值.我还需要赋值,所以我也重载了=运算符.但是,它有点不方便,因为我的类所持有的值是第一类对象,因此对于我的数组下标重载,我不能按原样返回它们.我必须返回一个中间类来处理=运算符,但我也想要检索该值而无需额外输入.
有没有办法做到这一点?哈金的方式是可以接受的.
编辑:这是它(应该)做的一个例子
#include<cstdio>
#include<cstdlib>
class foo{
char* a[100];
foo(){
for( int i = 0; i < 100; i ++)
a[i] = 0;
}
char* operator[] (int location){
return a[location];
}
foo& operator[]= (int location, const char* value ){
if( a[location] == 0 )
a[location] = (char*) malloc( strlen( value ) + 1 );
else
a[location] = (char*) realloc( a[location], strlen( value ) + 1 );
strcpy( a[location], value );
}
};
int main(){
foo …Run Code Online (Sandbox Code Playgroud) 我有一个小项目,我一直在使用C++,由于它的性质,我需要将数据包插入到实时TCP流中.(目的是无辜的,http://ee.forumify.com/viewtopic.php?id = 3299,如果你必须知道)我正在为游戏创建一个关卡编辑器,由于握手的性质,我不能简单地与WinSock等高级库建立新连接.到目前为止,它依靠Winsock数据包编辑器来完成肮脏的工作,但如果我让应用程序处理它,它会让每个人都开心.
所以我的问题是:在某个地方是否有一个API可以让我控制一个实时的TCP流,最好是一个在它完成后保持有效的一个?我宁愿不必注入任何DLL.另外,Detours是禁忌,因为我正在使用GCC/Mingw.
我玩弄了WinPCap并且我有一些工作代码(我可以收集一个数据包,并从中生成一个适当的数据包发送),但由于它运行在如此低的水平,我无法预测所有的潜在协议最终用户可能会使用.是的,很可能他们将使用IPv4 over Ethernet,但那些仍然使用PPP或其他一些模糊协议的人呢?此外,在完成连接后,客户端应用程序会断开连接,因为数据包中的最新ID值已更改,并且客户端认为已断开连接.
所以,如果有人能提供高级TCP流操纵器,我会非常高兴.如果没有,我将继续修补WinPCap并告诉所有拨号用户更好地上网.
目标平台:Microsoft Windows XP到Windows 7