2015-01-15 126 views
-5

你好我已经做了一个项目,其中的一般想法是在地图上有一些船只,他们互相交互。这里有一个船类和主要。错误:没有构造函数的实例修复::修复匹配参数列表(C++)

类修复:(包括头文件,我需要)

Repairing::Repairing(World *minimap[][10], string a) 
{ 
    int temp1, temp2; 
    bool done = false; 

    totalgoldtraded=0; 
    totalgoldearned=0; 
    totaldmgdone=0; 
    totaldmgtaken=0; 
    totalmove=0; 
    reserve = 0; 
    maxStamina = 100; 
    stamina = 100; 
    speed = 2; 
    isPirate = false; 
    name = a; 

    srand(time(0)); 

    while(done != true) 
    { 
     temp1 = (rand()%10); 
     temp2 = (rand()%10); 

     if((minimap[temp1][temp2]->checkShip() == false) && (minimap[temp1][temp2]->checkHarbor() == false) && (minimap[temp1][temp2]->getTreasure() == false)) 
     { 
      posX = temp1; 
      posY = temp2; 
      minimap[temp1][temp2]->setShip(true); 
      done = true; 
     } 
    } 
} 

void Repairing::operation(Boat *ships[], World *minimap[][10]) 
{ 
    int temp; 

    if (posX-1>=0) 
    { 
     for (int i=0; i<8; i++) 
     { 
      if (ships[i]->getPosX() == posX-1 && ships[i]->getPosY() == posY) 
      { 
       ships[i]->setStamina(10); 

       temp = ships[i]->getReserve(); 
       temp /= -10; 
       totalgoldearned -= temp; 
       ships[i]->setReserve(temp); 

       temp *= -1; 
       reserve += temp; 
       cout << "The " << name << " ship has earned gold from repairing. " << endl; 
      } 

      break; 

     } 
    } 

    if (posX+1<=9) 
    { 
     for (int i=0; i<8; i++) 
     { 
      if (ships[i]->getPosX() == posX+1 && ships[i]->getPosY() == posY) 
      { 
       ships[i]->setStamina(10); 

       temp = ships[i]->getReserve(); 
       temp /= -10; 
       totalgoldearned -= temp; 
       ships[i]->setReserve(temp); 

       temp *= -1; 
       reserve += temp; 
       cout << "The " << name << " ship has earned gold from repairing." << endl; 
      } 

      break; 

     } 
    } 

    if (posY-1>=0) 
    { 
     for (int i=0; i<8; i++) 
     { 
      if (ships[i]->getPosY() == posY-1 && ships[i]->getPosX() == posX) 
      { 
       ships[i]->setStamina(10); 

       temp = ships[i]->getReserve(); 
       temp /= -10; 
       totalgoldearned -= temp; 
       ships[i]->setReserve(temp); 

       temp *= -1; 
       reserve += temp; 
       cout << "The " << name << " ship has earned gold from repairing. " << endl; 
      } 

      break; 

     } 
    } 

    if (posY+1<=9) 
    { 
     for (int i=0; i<8; i++) 
     { 
      if (ships[i]->getPosY() == posY+1 && ships[i]->getPosX() == posX) 
      { 
       ships[i]->setStamina(10); 

       temp = ships[i]->getReserve(); 
       temp /= -10; 
       totalgoldearned -= temp; 
       ships[i]->setReserve(temp); 

       temp *= -1; 
       reserve += temp; 
       cout << "The " << name << " ship has earned gold from repairing." << endl; 
      } 

      break; 

     } 
    } 

} 
` 

,这里是主要的:

int randNumber(int x) 
{ 
    int temp; 

    temp = rand()%x + 1; 
    return temp; 
} 

int main() 
{ 
    srand((unsigned)time(0)); //Thats a must for our random numbers! 

    int i, j, temp; 
    World minimap[10][10]; //Array with World objects! 
    Boat *ships[8]; // Array that points the boat objects! 


    for(i=0; i<10; i++) //Initialize the World Array Objects! 
    { 
     for(j=0; j<10; j++) 
     { 
      temp = randNumber(10); 
      minimap[i][j].setProperties(temp); 
      cout << minimap[i][j].getWeather() << endl; 
     } 
    } 

    Repairing pirate_one(&minimap, "First Pirate"); 
    //Exploring ex(minimap, "First Exploring");` 

} 

遗憾的坏后presentation.My问题是,Visual Studio的C++ 2010显示我没有构造函数Repairing :: Repairing的实例匹配参数列表(此问题存在于& minimap中)。尽快解答

+3

_“请尽快回答”_ Monster DV磁铁。 – 2015-01-15 16:18:58

+0

你没有清楚描述你的问题。我甚至无法理解这个问题以及你所尝试过的。一个权利,它失踪了。 Downvoting。 – usr1234567 2015-01-15 16:20:24

+0

修复了 – 2015-01-15 16:28:31

回答

1
Repairing::Repairing(World *minimap[][10], string a) 

*表示指向World的指针数组。

World minimap[10][10]; 

你传递World对象,而不是一个指针数组。

决定它是否应该是指针或对象的数组,并更改构造函数或变量以匹配。

相关问题