在C++中我们可以将子类指针转换为父类,但是有没有办法将它转换回来:从父类获得,从子类获得,给孩子类回来?
我的意思是:
class Parent
{
...
};
class Child : public Parent
{
...
};
int main(int argc, char const *argv[])
{
Child* child = new Child();
Parent* parent = child;
Child* old_child = parent; // how to do this??
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢您的回答.
我有两个清单:
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
Run Code Online (Sandbox Code Playgroud)
我需要得到这样的东西:
c = [1, 5, 2, 6, 3, 7, 4, 8]
Run Code Online (Sandbox Code Playgroud)
我使用这个解决方案:
c = list(reduce(lambda x, y: x + y, zip(a, b)))
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
做这个的最好方式是什么:
>>> replace2([1, 2, 3, 4, 5, 6])
[2, 1, 4, 3, 6, 5]
Run Code Online (Sandbox Code Playgroud) 在C++ Qt Library中有一个函数QRect screenGeometry().QRect有功能int width()和int height().如果我将此函数的结果保存到int变量,那么除法效果很好,但如果我直接在除法中使用此函数之一,则会产生奇怪的结果:
QRect scr_size = QApplication::desktop()->screenGeometry();
int a = 1280;
int b = 720;
int c = scr_size.width();
int d = scr_size.height();
qDebug() << c; // 1920
qDebug() << d; // 1080
qDebug() << ((float(a) / b) - (float(c) / d)); // 0
qDebug() << ((float(a) / b) - (float(scr_size.width()) / d)); // 1.32455e-08
qDebug() << ((float(a) / b) - (float(c) / scr_size.height())); // 1.32455e-08
qDebug() …Run Code Online (Sandbox Code Playgroud) 为什么Python和C#中的按位左移有不同的值?
蟒蛇:
>>> 2466250752<<1
4932501504L
Run Code Online (Sandbox Code Playgroud)
C#:
System.Console.Write((2466250752 << 1).ToString()); // output is 637534208
Run Code Online (Sandbox Code Playgroud)