У чым розніца паміж (int) x і int (x) у C ++?


адказ 1:
(Int) x; // пераўтварае x з іншага тыпу ў Int

Азначае адмену C ад кожнага тыпу x да int. І,

int (x); // азначае, Int x;

азначае толькі int x; ...

Паспрабуйце не выкарыстоўваць любую з гэтых формаў, бо першая форма легальная (у лепшым выпадку дрэнная), і калі гэта сапраўды неабходна, вам варта выкарыстоўваць static_cast <>, каб сапраўды ўдакладніць, што адбываецца (каб не было сюрпрызаў) Другое проста блытае, таму што дужкі непатрэбныя.


адказ 2:

Розніцы няма.

Увогуле, у C ++, T (x) ("пераўтварэнне функцыянальнага стылю") і (T) x ("пераўтварэнне стылю C") - гэта дзве эквівалентныя сінтаксічныя формы пераўтварэння відавочнага тыпу.

Адзінае адрозненне заключаецца ў тым, што форма T (x) патрабуе, каб T быў "простым спецыфікатарам тыпу". Гэта прыблізна азначае, што гэта адзін маркер: вы не можаце пісаць без подпісу int (x) або int * (x).


адказ 3:

Розніцы няма.

Увогуле, у C ++, T (x) ("пераўтварэнне функцыянальнага стылю") і (T) x ("пераўтварэнне стылю C") - гэта дзве эквівалентныя сінтаксічныя формы пераўтварэння відавочнага тыпу.

Адзінае адрозненне заключаецца ў тым, што форма T (x) патрабуе, каб T быў "простым спецыфікатарам тыпу". Гэта прыблізна азначае, што гэта адзін маркер: вы не можаце пісаць без подпісу int (x) або int * (x).