我有 3 个文件 pos.h pos.cpp 和 main.cpp ....我试图从主类中的 pos.cpp 调用一个函数,例如:
pos.h文件
class pos {
public:
pos(); //defualut constructor
int open_port();
}
pos.cpp
#include "pos.h"
int Open_port() {
//do stuff here
return 0;
}
类main.cpp
#include "pos.h"
int main(int argc , char** argv) {
pos pos1;
pos1::Open_port();
}
问题是我总是发现 pos1 不是我正在编译的类或 namespace ,如下所示 g++ mainpos.cpp pos.cpp pos.h -o position -lpthread 有什么想法吗?
最佳答案
您的代码似乎有几个问题:
int open_port();
是pos
的成员函数。但是,当您定义它时,您没有使用 ::
运算符并且函数名称已更改。
尝试:
int pos::open_port()
{ ///^^pay attention to typos
//do stuff here
return 0;
}
然后在 main
中。你可以这样做:
pos pos1;
pos1.open_port();
如果您真的是指 Open_port()
,它不是该类的成员,那么您需要将函数声明添加到正确的头文件中并正确使用它,但这是一个单独的问题。
关于c++ - 我怎样才能调用另一个类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17177411/