Tag: 重新定义

重新定义类方法或类

有没有办法重新定义一个类或它的一些方法,而不使用典型的inheritance? 例如: class third_party_library { function buggy_function() { return 'bad result'; } function other_functions(){ return 'blah'; } } 我能做些什么来取代buggy_function() ? 显然这是我想要做的 class third_party_library redefines third_party_library{ function buggy_function() { return 'good result'; } function other_functions(){ return 'blah'; } } 这是我的确切困境:我更新了一个破坏我的代码的第三方库。 我不想直接修改库,因为将来的更新可能会再次破坏代码。 我正在寻找一种无缝的方式来取代类方法。 我发现这个图书馆说它可以做到这一点,但是我已经4岁那么警惕了。 编辑: 我应该澄清说,我不能从third_party_library重命名为magical_third_party_library或其他因为框架的限制。 对于我的目的,是否可以只为课程添加一个函数? 我想你可以在C#中做一些叫做“部分类”的东西。

C ++重新定义头文件(winsock2.h)

我如何防止包含头文件两次? 问题是我包括 在MyClass.h中 ,然后我在很多文件中包含了MyClass.h ,所以它包含多次,并且会出现重定义错误。 如何预防? 我使用#pragma而不是包括守卫,我想这很好。 MyClass.h: // MyClass.h #pragma once #include <winsock2.h> class MyClass { // methods public: MyClass(unsigned short port); virtual ~MyClass(void); }; 编辑:几个我得到的错误 c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(91) : warning C4005: 'AF_IPX' : macro redefinition c:\program files\microsoft sdks\windows\v6.0a\include\winsock.h(460) : see previous definition of 'AF_IPX' c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h(124) : warning C4005: 'AF_MAX' : macro […]