我正在尝试使用makefile,但现在它并不适合我。实验很简单:一个main.cpp,用于创建一个具有函数sayHello()的机器人,该机器人可以帮助机器人向你问好。到终点站。这是我文件中的代码。
robot.h:
#include <stdio.h>
class Robot(){
public:
Robot();
public:
void sayHello();
};
robot.cpp
#include "robot.h"
Robot::Robot()
{
void Robot::sayHello(){
printf("Robot says hello \r\n");
}
};
的main.cpp
#include <stdio.h>
#include "robot.h"
Robot robocop();
int main(void)
{
printf("hello world \r\n");
robocop.sayHello();
return 0;
}
错误如下:
robot.h:2:13:错误:在')'令牌之前预期不合格的id class Robot(){ ^ main.cpp:在函数'int main()'中: main.cpp:9:10:错误:请求'robocop'中的成员'sayHello',这是非类型'Robot()' robocop.sayHello();
我已经尝试了太长时间并且可以使用一些帮助。谢谢!
答案 0 :(得分:0)
这与makefile无关。
robot.cpp
中的类方法定义是错误的。如上所述,sayHello()
方法奇怪地被推到了类的构造函数中。这是不正确的。每个类方法(包括构造函数)都必须单独定义:
#include "robot.h"
Robot::Robot()
{
}
void Robot::sayHello()
{
printf("Robot says hello \r\n");
}
答案 1 :(得分:0)
我已经修好了这个:
robot.h
#include <stdio.h>
class Robot{
public:
Robot();
public:
void sayHello();
};
robot.cpp
#include "robot.h"
Robot::Robot()
{}
void Robot::sayHello(){
printf("Robot says hello \r\n");
}
的main.cpp
#include "robot.h"
Robot robocop;
int main(void)
{
robocop.sayHello();
return 0;
}
感谢您的帮助!
答案 2 :(得分:0)
主:
int main()
{
Robot robocop;
printf("hello world \r\n");
robocop.sayHello();
system("pause>nul");
return 0;
}
P.S:使用system()时要小心。我在这个例子中使用它,因为它是最快的,但我建议将来使用别的东西;应该为此工作。
部首:
class Robot {
public:
Robot();
void sayHello();
};
Robot.cpp:
Robot::Robot()
{
return;
}
void Robot::sayHello() {
printf("Robot says hello \r\n");
}
如上所述,你写得不正确。我建议观看一些关于C ++基础知识的教程。