C++怎样消除前向声明的潜在弊端

【C++怎样消除前向声明的潜在弊端】 像题主说的第一种情况,C++编译器在链接的时候会报错,你一定会知道的,所以不能算弊端。
第二种情况就没办法了,只能靠每次checkin的时候做code review。

■网友
消除弊端的方法很多。避免单独的声明(从 Java 开始),命名参数(Python,Swift 等),都是新语言中常见的解决办法。在 C++ 的框架内,目测基本只能通过自律和代码审查来做到吧。尤其是第二个例子这样的问题。当然,对于参数繁多的情况,可以考虑包装成一个 struct,间接达到命名参数的作用。
■网友
据我所知通过代码本身和编译器都不能消除这种问题。
第一种情况还好些,如果你调用了foo(int)会产生链接错误。但是第二种把两个相同类型参数的名字换了是没有办法的。
但是不排除有静态检查工具能识别这种潜在错误,看看有没有其它答案吧。


    推荐阅读