Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;如何重铸而不失去价值_C++ - Fatal编程技术网

C++ c++;如何重铸而不失去价值

C++ c++;如何重铸而不失去价值,c++,C++,有人能帮我选演员吗?我有两个班;其中一个可移动对象和另一个PlantMO。movableObject是我的基类,plantMO就是从它派生的。首先,我向一个可移动对象投射一个PlantMO,以使所有可移动对象保持在同一区域。在那之后,当我使用其中一个时,我重铸了它,但是它(PlantMO)成员的价值丢失了 我的问题是,;如何在不丢失成员的情况下重铸它?如果看不到您的代码,我无法准确地向您展示您需要做什么,但您需要使用指针或引用,类似这样的东西(注意,我没有尝试编译此代码,它只是一个抽象示例) 让

有人能帮我选演员吗?我有两个班;其中一个可移动对象和另一个PlantMO。movableObject是我的基类,plantMO就是从它派生的。首先,我向一个可移动对象投射一个PlantMO,以使所有可移动对象保持在同一区域。在那之后,当我使用其中一个时,我重铸了它,但是它(PlantMO)成员的价值丢失了


我的问题是,;如何在不丢失成员的情况下重铸它?

如果看不到您的代码,我无法准确地向您展示您需要做什么,但您需要使用指针或引用,类似这样的东西(注意,我没有尝试编译此代码,它只是一个抽象示例)


让我猜猜:您没有使用指针或引用,因此正在经历对象切片吗?@chris所说的可能是正确的。我们需要查看您的代码以帮助您。好的问题应该包含说明问题的代码示例。否则我们将猜测实际问题是什么。你不能,也不应该。事实上,我使用了指针。我无法共享我的代码,因为它太大了。但是尝试了一点代码块,它就成功了。所以我的方法是正确的,我的代码中有一个错误。谢谢您的回答。@umut-当导致问题的代码太大时,请将其减少。为了理解一个问题,你必须孤立它;将一个大型程序缩减为一个小型程序,编译、运行并显示问题,这会给您带来一些可以发布的内容,通常也会给您带来一些不需要发布的内容,因为它会告诉您问题所在。
class A {
}

class B : A {
}

main () {
 B& refB = new B();
 SomeFunction(refB);
}

void SomeFunction(A& aRefToA) {
 // Call functions of A.
}