C++ (Qt)int x=9;float y= (float)x;
C++ (Qt)float x=3.231;double g=x; //неявно приводится к double
C++ (Qt)float f = 0.5f;double d = 2.1;int i1, i2; f = i1; // float "старше" int, все нормf = d; // а здесь double старше, компилятор может вякнуть варнингомf = (float) d; // сказали компилятору что согласны с потерей точности // результат арифметики возвращается как старший типi1 = 2;i2 = 3;d = (i1 + i2) / 2; // результат d = 2.0;d = (i1 + i2) / 2.0; // результат d = 2.5;
C++ (Qt)class A {..};class B : public A {..};class C : public A {..};...B * b = ..C * c = dynamic_cast <C *> b;// с - нормальный указатель на объект класса С (если он был таким создан)
C++ (Qt)class A{....};class B{...}; A * typeA;B *typeB;B = dynamic_cast<*B> typeA; // dynamic_cast вернёт NULL?
C++ (Qt)B = dynamic_cast<*B> typeA; // dynamic_cast вернёт NULL?
C++ (Qt)class A{public:int e;}class B: public A{public:double h;} .....// делаем вот тут такоеA* vA = new A;vA->e=3;B* vB= dynamic_cast<*B> vA; // собственно вопрос: какие будут значения полей у vB, т.е. vB.e, vB.h какие будут иметь значения?// то есть при преобразовании типо их поля как друг другу передаются? ...
C++ (Qt)B* vB = new B;vB.h= 2.345;vB.e=1;A *vA = dynamic_cast<*A> vB;// каким будет значение в vA.e ?
C++ (Qt).....// делаем вот тут такоеA* vA = new A;vA->e=3;B* vB= dynamic_cast<*B> vA; // собственно вопрос: какие будут значения полей у vB, т.е. vB.e, vB.h какие будут иметь значения?// то есть при преобразовании типо их поля как друг другу передаются? ...
C++ (Qt)а наоборот если, то тогда что? B* vB = new B;vB.h= 2.345;vB.e=1;A *vA = dynamic_cast<*A> vB;// каким будет значение в vA.e ?