很抱歉,如果它是愚蠢的,我只是在学习C ++,我找不到任何理由为什么函数不被调用。
我有这个机器人类和一个具有2个类(机器人)参数的函数,而我没有得到任何错误,check_S函数永远不会运行。
也可以随意更正我在代码中看到的任何不良做法。感谢
以下部分代码:
#include <iostream>
using namespace std;
class robot
{
(.....)
};
robot::robot()
{
x = 0;
y = 0;
S = 0;
E = 0;
C = 0;
}
void check_S(robot robot1, robot robot2);
int main()
{
robot robot1;
robot robot2;
void check_S(robot robot1, robot robot2);
}
void check_S(robot robot1, robot robot2)
{
cout << " in the function " << endl;
if ( robot1.robot::get_x() == robot2.robot::get_x() || robot1.robot::get_y() == robot2.robot::get_y()
|| (robot1.robot::get_x() - robot1.robot::get_y()) == (robot2.robot::get_x() - robot2.robot::get_y())
|| (robot1.robot::get_x() + robot1.robot::get_y()) == (robot2.robot::get_x() + robot2.robot::get_y())){
robot1.robot::set_S(robot1.robot::get_S()+1);
cout << " s changed to " << robot1.S << endl;
}
}
答案 0 :(得分:2)
这一行:
void check_S(robot robot1, robot robot2);
是一个函数声明(因为函数名和参数之前的类型名称),而不是函数调用。 要调用该函数,请写:
check_S(robot1, robot2);