【发布时间】:2011-09-09 23:13:15
【问题描述】:
从一个类继承时,您只需查看层次结构即可了解对您施加的要求和限制。例如,您可以通过查看父类来找出需要定义哪些方法(纯虚拟)。如果一个人选择使用模板(如果它符合要求),那么事情就不那么清楚了。模板类的方法可能需要多个type 的方法。
我遇到了一个必须使用的复杂类。我不知道我的type(类/对象)应该有什么方法。我能找到的唯一方法是编译编译器会让我知道哪些方法是预期的。这就像从一个抽象类继承而不访问头文件。这有点麻烦,因为找出方法规范(签名)非常耗时。
现在该类的原始设计者可能已经放置了一些文档来说明预期会出现哪些方法及其签名,但我不禁想知道是否有一种方法可以让代码自我记录(或者已经,我不知道如何查看?)。编译和查看错误不能是唯一的方法,不是吗?
【问题讨论】:
-
AFAIK,没有办法解决这个问题,要么是文档错误,要么是编译器错误 - 选择你的毒药..
-
您可以创建一个单独的测试 TU,其中仅包含模板、脚手架类
Foo和显式实例化template class MasterClass<Foo>;。这将使编译器实例化所有方法,并希望您可以使用诊断来确定您需要什么。不过,如果可以的话,重新设计模板以包含特征检查会更好。