我的代码旨在管理联网客户端和服务器上的操作,因为两者之间存在重大的重叠。但是,这里和那里有一些功能是专门由客户端或服务器调用的,并且在服务器上意外地调用客户端功能(反之亦然)是错误的重要来源。如何将代码自动添加到C++中的衍生函数中
为了减少这些类型的编程错误,我试图给函数添加标签,以便在错误使用时会引发骚动。我目前的解决方案是在每个函数的开始处有一个简单的宏,如果客户端或服务器访问它们不应该访问的成员,则调用assert。然而,当有多个派生实例的类时,这会遇到问题,因为我必须在每个子类中将实现标记为客户端或服务器端。
我想要做的就是在基类中的虚拟成员签名中放置一个标签,这样我只需标记一次即可,而不会因为忘记重复执行而出现错误。我曾考虑在基类实现中进行检查,然后用base :: functionName之类的方式来引用它,但只要需要手动将函数调用添加到每个实现中,就会遇到同样的问题。理想情况下,我可以像默认构造函数一样自动调用父级版本。
有人知道如何在C++中实现这样的东西吗?我应该考虑另一种方法吗?
谢谢!
听起来像你应该有不同的代码和/或类为服务器/客户端 – Falmarri 2011-01-05 01:04:09
为什么不把通用代码分解成基类,并从它们派生一个服务器类和客户端类? – Puppy 2011-01-05 01:12:09