我正在尝试创建一个包含类指针对象的变量。
这是我的两个带有构造函数值的类指针对象。
Goblin *g = new Goblin(6, 6, 3, 8, 2,1);
Barbarian *b = new Barbarian(6, 6, 0, 12, 2, 2);
我想创建一个包含这样数据的变量,这样我就可以让玩家选择他想要的生物,变量将保存该数据,这样我就可以将它用于我的功能。
这是我想要使用的函数的标题。
void battle(Creature *a, Creature *d, std::string nameA, std::string nameD);
这是在main()
中调用的函数battle(g, b, playerName, opponentCreature);
值g和b是我想用新变量替换的值。 我尝试使用string和int变量类型,但这不起作用。有没有人有任何想法我怎么能这样做?
答案 0 :(得分:0)
我通过使用这两行来实现它。
Creature *personCode = 0;
Creature *opponentCode = 0;
以下是他们与我的计划的关系。
std::cout << "Choose your creature." << std::endl;
std::cout << "\n1). Goblin." << std::endl;
std::cout << "2). Barbarian." << std::endl;
std::cin >> choice;
std::cin.clear();//clear the input
std::cin.ignore(100, '\n');//ignore 100 char or up to new line.
switch (choice)
{
case 1:// std::cout << "Goblin" << std::endl;
playerCreature = "Goblin";
personCode = new Goblin(6, 6, 3, 8, 2, 1);
break;
case 2:// std::cout << "Barbarian" << std::endl;
playerCreature = "Barbarian";
personCode = new Barbarian(6, 6, 0, 12, 2, 2);
break;
}
std::cout << "Choose your opponent" << std::endl;
std::cout << "\n1). Goblin." << std::endl;
std::cout << "2). Barbarian." << std::endl;
std::cin >> choice;
std::cin.clear();//clear the input
std::cin.ignore(100, '\n');//ignore 100 char or up to new line.
switch (choice)
{
case 1: //std::cout << "Goblin" << std::endl;
opponentCreature = "Goblin";
opponentCode = new Goblin(6, 6, 3, 8, 2, 1);
break;
case 2: //std::cout << "Barbarian" << std::endl;
opponentCreature = "Barbarian";
opponentCode = new Barbarian(6, 6, 0, 12, 2, 2);
break;
}
这是现在正在调用的函数。
battle(personCode, opponentCode, playerName, opponentCreature);