我想知道为什么当我使用时decltype (* pointer),它将变量的类型定义为引用。例如:
int i = 42, * p = & i;
decltype (* p) c = i;
Run Code Online (Sandbox Code Playgroud)
现在c是一个参考(链接到i)。为什么它是引用而不是整数?我正在读Cpp Primer 5th。版。P. 110这样说,我不明白为什么。
在oracle官方网站上写:( http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html#rethrow )
具体来说,在 Java SE 7 及更高版本中,当您在 catch 子句中声明一个或多个异常类型,并重新抛出此 catch 块处理的异常时,编译器会验证重新抛出的异常类型是否满足以下条件:
try 块能够抛出它。
没有其他前面的 catch 块可以处理它。
它是 catch 子句的异常参数之一的子类型或超类型。
请集中注意第三点(它是 catch 子句的异常参数之一的子类型或超类型。)
这到底意味着什么?你能给我举一些例子吗?我无法清楚地理解它。