static-cast

    1热度

    1回答

    我在我们的生产环境中发现了以下代码构造(然而大量简化)。 #include <iostream> typedef struct { char entry[10]; } inn_struct; typedef struct { inn_struct directory; } out_struct; struct test { static

    2热度

    1回答

    说我有下面的类类型 class base { }; class der : public base { }; 用的static_cast可以使用对象和指针。 我尝试以下 - 但是以下不起作用 base b; der m = static_cast<der>(b); 任何建议,为什么第二次不起作用其中工程(指针) base* b = new base(); der * m

    -1热度

    2回答

    我需要将表达式的类型从浮点型更改为整型,以便将其添加到另一个整型变量。 表达式的实际值是。 但是当从浮点数变为int时,表达式值((d * s)/ sqrt(1 + pow(s,2)))显示为。 由于这个,它给出了错误的结果。为什么它显示0,我如何避免这种情况? #include <iostream> #include <math.h> using namespace std; int m

    2热度

    2回答

    该类是多态的。 为什么两个打印输出相同? class A { public: virtual void P(){ cout << "A" << endl; } }; class B : public A { public: void P()override{ cout << "B" << endl; } B(){ cout << "

    7热度

    2回答

    我需要采取2个无符号的8位值并将它们相减,然后将此值添加到32位累加器。 8位减法可能会下溢,这没关系(unsigned int下溢是定义的行为,所以没有问题)。 我预计static_cast<uint32_t>(foo - bar)应该做我想做的(其中foo和bar都是uint8_t)。但它看起来是这样投了他们第一个和然后执行一个32位减法,而我需要它作为一个8位变量下溢。我知道我可以模256,

    -4热度

    3回答

    更新: class foo { public: foo() : x_(0) { std::cout << "foo constructor\n"; } foo(foo& c) : x_(c.x_) { std::cout << "foo copy- constructor\n"; } foo& operator=(foo const& c) { st

    0热度

    2回答

    我知道静态转换是在编译时处理的,但是如何在for循环的条件下静态转换?每次迭代都会进行演员阵容,还是只在编译阶段进行一次?我很关心这个实现的成本。我知道编译器会自动转换类型,我只是想删除警告。例如: double limit = 10.0; for(int i = 0; i < static_cast<int>(limit); i++) { ... } 警告是:“从'doub

    0热度

    4回答

    我最近有一种情况,我必须使用static_cast将父类转换为子类,因为我知道该对象实例是该子类。我知道这是基于if条件。 事情是这样的: parent* foo; child* bar; if(foo is instance of child class) bar = static_cast<child*>(foo) 我的问题是: 为什么始终的static_cast需要指点?当

    1热度

    1回答

    static_cast如何工作?如果你正在做的事情一样...... 如果d通过一些未指定的层次结构(不一定直接)的B继承,你这样做: B* b = new D(); D* d = static_cast<D*>(b); 发生了什么?它只是在编译时计算偏移量并将该偏移量应用于指针?或者在运行时发生了什么事情以便执行演员?

    1热度

    2回答

    我不知道我的标题是否正确,但我想消除重复,所以我想我应该把这个定义放在一个数组中。有人可以建议我如何将pButtons放入数组中吗?我想这样pButton [EButtonHost],pButton [EButtonUsername]等 #define pButtonHost static_cast<XQtMultipleStringInputButton*>(m_pButtonList[EBut