Например, этоМогут ли скобки принимать произвольные идентификаторы в качестве аргументов? C++
(const int)* someInt;
правильный код?
Если да, то это заявление отличается от
const int* someInt;
?
Например, этоМогут ли скобки принимать произвольные идентификаторы в качестве аргументов? C++
(const int)* someInt;
правильный код?
Если да, то это заявление отличается от
const int* someInt;
?
Вы можете поставить сколь угодно много скобок вокруг выражений без изменения смысла. Но вы не можете делать то же самое с типами. В частности, как указывали другие, parenthese в вашем коде изменяет значение из декларации в литье.
Вы можете сделать стиль c с любым типом внутри, но выражение, которое вы пытаетесь выполнить, не может быть выполнено таким образом.
У вас не может быть произвольного типа с правой стороны отливки. Для выполнения преобразования вам нужен оператор преобразования, определенный пользователем.
Это _переменные определения_, а не отливки. – sbi
Нет, если someInt определен как int *, например. –
Это кажется для меня действительным, потому что вы можете каждый раз указатель на постоянное значение.
Я не думаю, что между двумя существует разница.
если someInt
определяется как
int *someInt;
затем
(const int)* someInt;
является действительным. Иначе вы столкнетесь с ошибкой.
Вы полагаете, что указатель на int
отличен от const int
. И да, это заявление без задания, напрасно.
int rtn = (const int)* someInt;
Примечание: (const int) может быть другим типом, если someInt является указателем на что-то (не обязательно int). – ttchong
Кроме того, если вы оригинальное намерение сделать актерский состав, вы можете исправить синтаксис (const int *) someInt; – ttchong
ttchong: «пока someInt является указателем на что-то» .., который может быть разыменован (не 'void *') и может быть передан в int (а не 'struct mystruct *') –
Это определение или литье? (похоже на определение). – Quonux
Я имел в виду определения. По крайней мере, второе утверждение является определением, но вы расскажете мне о первом утверждении. – user383352
Если ничего не находится перед этим кодом (например, bla = ...), то оба являются определениями. – Quonux