括号可以将任意标识符作为参数吗? C ++

时间:2010-07-14 14:03:22

标签: c++

例如,是

(const int)* someInt;

有效代码?

如果是,该声明是否与

不同
const int* someInt;

4 个答案:

答案 0 :(得分:2)

您可以在表达式周围添加任意多个括号而不更改含义。但你不能对类型做同样的事情。特别是,正如其他人所指出的那样,代码中的括号会改变声明中的含义。

答案 1 :(得分:0)

您可以在内部使用任何类型执行c样式转换,但是您尝试转换的表达式可能无法以这种方式转换。

你不能在演员的右手边有任何类型。您需要用户定义的转换运算符才能执行转换。

答案 2 :(得分:0)

这似乎对我有效,因为你可以每次都有一个指向常量值的指针。

我不认为两者之间存在差异。

答案 3 :(得分:0)

如果someInt定义为

int *someInt;

然后

(const int)* someInt;

有效。否则你会遇到错误。

您需要指向int的指针并将结果值转换为const int。 是的,这个没有任务的声明被浪费了。

int rtn = (const int)* someInt;