尝试将多个类与构造函数用于makefile时出错

时间:2017-01-07 14:29:27

标签: c++ class makefile constructor

我正在尝试使用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();

我已经尝试了太长时间并且可以使用一些帮助。谢谢!

3 个答案:

答案 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 ++基础知识的教程。