Круглые скобки могут взять произвольные идентификаторы в качестве аргументов? C++

Например,

(const int)* someInt;

действительный код?

Если так, тот оператор, отличающийся, чем

const int* someInt;

?

1
задан user383352 14 July 2010 в 14:03
поделиться

4 ответа

Вы можете заключить любое выражение в круглые скобки, не изменяя значения. Но вы не можете сделать то же самое с типами. В частности, как указывали другие, круглые скобки в вашем коде меняют значение с объявления на приведение.

2
ответ дан 2 September 2019 в 23:04
поделиться

Мне это кажется верным, потому что вы можете каждый раз иметь указатель на постоянное значение.

Я не думаю, что между ними существует разница.

0
ответ дан 2 September 2019 в 23:04
поделиться

Вы можете сделать приведение в стиле c с любым типом внутри, но выражение, которое вы пытаетесь привести, может не быть приведено таким образом.

Вы не можете иметь произвольный тип в правой части приведения. Для выполнения преобразования необходим оператор преобразования, определяемый пользователем.

0
ответ дан 2 September 2019 в 23:04
поделиться

если someInt определен как

int *someInt;

, то

(const int)* someInt;

является действительным. В противном случае вы столкнетесь с ошибкой.

Вы указываете указатель на int и приводите результирующее значение к const int . И да, это заявление без задания потрачено зря.

int rtn = (const int)* someInt;
0
ответ дан 2 September 2019 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: