我有以下代码:
void testCopy(){
Balloon* b1=new Balloon(1,5,6,3);
Balloon* b2=new Ballon(2,4,4,2);
cpyBallon(b1,b2);
assert(b1->getCenterx()==5);
cout<<" cpyBalloon() OK!\n";
}
cpyBalloon() 的代码是
void cpyBalloon(TCE& dest,TCE src){
Balloon* b=(Balloon*) src;
Balloon* d=new Balloon();
*d=*b;
dest=d;
}
其中 TCE if 类型为 void*。问题是我不知道如何将Balloon* 类型的对象b2 作为void*& 传递。我不断收到以下错误:
..\src\/Domain/BalloonTest.h:68:18: error: invalid initialization of reference of type 'void*& {aka void*&}' from expression of type 'domain::Balloon*'
..\src\/Domain/Balloon.h:102:10: error: in passing argument 1 of 'void domain::delBalloon(void*&)'
我知道 b2 是我遇到问题的论点,但我不知道该怎么做才能使它起作用。