将对象传递到函数中(在 Main 中定义的对象)
Passing an object into a function (Object defined in Main)
如何将
Main 中定义的对象传递到函数中?
我的main
函数如下所示:
// Initialising the players
Player Joe;
Player Sid;
Joe.setPlayerName("Joe");
Sid.setPlayerName("Sid");
Joe.setPercentage(71);
Sid.setPercentage(73);
Joe.setTotal(501);
Sid.setTotal(501);
Joe.setThrows(0);
Sid.setThrows(0);
// Starts Joe's turn (and the game)
turn(Joe);
在另一个名为 calculateTotal
的函数中,我有以下代码部分:
else if (potentialTotal < 2 && potentialTotal != 0)
{
potentialTotal = total; // Total remains the same
player.setThrows(0); // Resets their throws
// Switch player's turn
if (player.getPlayerName() == "Joe")
{
turn(Sid);
}
else if (player.getPlayerName() == "Sid")
{
turn(Joe);
}
}
问题是turn(Sid)
中的Sid
以及turn(Joe)
中的Joe
不起作用,这是因为它们是在main
而不是calculateTotal
函数中声明的。
我已经传递了Player
对象,如calculateTotal
函数所示 - 例如player.getPlayerName()
,但是如果我输入turn(player)
,这将调用turn(Joe)
,因为他先走,这不是我需要的,我需要它切换到Sid
。
程序中的功能。
void turn(Player& player);
void bullseye(Player& player);
void singleThrow(int requiredValue, Player& player);
void doubleThrow(int dartThrow, Player& player);
void trebleThrow(int dartThrow, Player& player);
void calculateTotal(Player& player);
这是错误:
1>f:abertayprogrammingcourseworkcourseworksource.cpp(149): error C2065: 'Sid' : undeclared identifier
1>f:abertayprogrammingcourseworkcourseworksource.cpp(153): error C2065: 'Joe' : undeclared identifier
1>f:abertayprogrammingcourseworkcourseworksource.cpp(169): error C2065: 'Sid' : undeclared identifier
1>f:abertayprogrammingcourseworkcourseworksource.cpp(173): error C2065: 'Joe' : undeclared identifier
传递引用
如果在 main 中创建对象并且不需要对象的副本(似乎是这种情况),请将对main
中对象的引用传递给 calculations
函数:
void calculations(Player& Joe, Player& Sid)
{
//...
else if (potentialTotal < 2 && potentialTotal != 0)
{
potentialTotal = total; // Total remains the same
player.setThrows(0); // Resets their throws
// Switch player's turn
if (player.getPlayerName() == "Joe")
{
turn(Sid);
}
else if (player.getPlayerName() == "Sid")
{
turn(Joe);
}
}
//...
}
如果您不熟悉,引用只是对象的另一个名称,它不会复制您的Player
对象,相反,calculations
函数将引用main
函数中的对象。
相关文章:
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- "main"函数堆栈中的对象在第一个任务运行时被覆盖 (FreeRTOS)
- 如何获取在 main() 函数中构造的类的创建对象?
- 如何从不同的类中获取函数来调用在 Main 中声明的对象?
- ./main:加载共享库时出错:libopencv_highgui.so.4.0:无法打开共享对象文件:没有这样的文件或
- 我们可以在main函数中声明嵌套类对象吗
- 调用Main将替换矢量对象并覆盖数据
- 类对象在 int main() 中'undefined'
- 当我调用 main 中使用 const 对象的 const 函数时,不断出现错误
- 将对象从函数C 中的MAIN更改
- 如何在 main 函数的一个对象中初始化两个类的值?C++
- C :使用Main中定义的对象方法的函数
- 如何修复结构播放器对象中的矢量位置,以便它在 Main 中与 me.position 一起使用?
- 在C 中使用静态功能,我的教授希望我告诉Main哪个对象具有最高优先级,而无需传递任何内容
- main.cpp:(.text+0x8f):对[对象方法]的未定义引用
- 使用 main() 以外的其他函数显示类的对象,但在 main() 中调用;
- 从main()将类对象实例作为参数将参数传递到另一个类对象实例
- 可以(通过编译器)使用多少个线程来初始化全局对象(函数main之前)
- 构造函数在 main 中调用,但对象未正确创建
- 如何在函数内部制作对象并将其返回到main(),而无需删除函数将其删除在C 中