c – 了解C4673编译器警告
有关警告
C4673的MSDN文章包含此示例,该示例使用特定消息发出警告:
Base: this base class is inaccessible
不幸的是,MSDN文章没有给出任何解释的问题.我不明白上面的代码有什么问题.为什么会发出警告? 这是MSVC 2013 – v120工具集. 解决方法
我可以在
webcompiler上重现这个,警告的全文是:
那是真实的.如果我们有: try { throw Derv(); } catch (Base& ) { std::cout << "I caught it!"; } 该处理程序与Derv异常不匹配,因为Derv从Base私下继承,因此基类不可访问.所以在这个例子中,异常将是未被捕获的. 但是,如在MSDN示例中那样发出一个奇怪的警告,异常将被捕获: catch(...) {} 因此,似乎警告实际上没有检查任何事情 – 这只是一般性发布警告,您可能正在做有害的事情,而无需实际检查您是否.这对我来说似乎不是一个特别有用的警告.如果我们赶上Base&,是的 – 告诉我那不会发生 – 但我们正在追赶…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |