C++编译器问题 (?):无法将参数传递给单独类文件中的函数
C++ compiler issue (?): can't pass arguments to functions in separate class files
可能重复:
什么是未定义的引用/未解决的外部符号错误,如何修复?
我最近开始在C++中开发解释器,但我很恼火,无论我尝试什么,向量或数组都不能传递给外部类方法,所以我删除了我所做的一切。事实证明,我甚至不能将int传递给另一个类。在使用C或Java之前,我决定再给C++一次机会,但编译器仍然不能像我预期的那样工作。也许我忘记了C++的一些简单之处,因为我已经有一段时间没有使用它了,但这似乎已经足够简单了。我的问题是:当其他类中的方法没有在同一个文件中定义时,我不能将参数传递给它们。以下是我要做的:
Main:Main.cpp
#include "myclass.h"
int main() {
MyClass test;
int n = test.add(25, 30);
return n;
}
标题:myclass.h
class MyClass {
public:
int add(int a, int b);
};
类实现:myclass.cpp
#include "myclass.h"
int MyClass::add(int a, int b) {
return a + b;
}
使用g++ main.cpp
进行编译可产生
/tmp/ccAZr6EY.o:在函数
main': main.cpp:(.text+0x1a): undefined reference to
MyClass::add(int,int('中collect2:错误:ld返回1退出状态
我到底做错了什么?此外,即使我的函数没有参数化,编译器也会因为同样的事情对我大喊大叫,所以这一定是头的问题。
非常感谢您的帮助-谢谢!
您需要编译两个文件
g++ main.cpp myclass.cpp
如果您只编译main.cpp,编译器会在您的头中找到MyClass::add
的声明,但链接器稍后无法找到要跳转到的MyClass::add
的实现。
相关文章:
- 如何将参数传递给正在使用模板的类
- 如何将一个类的函数作为另一个类的另一个函数的参数传递
- 如何在不使用指针的情况下将派生类的对象作为参数传递给基类中的函数?
- 如何将将参数包作为参数传递给其他模板类的模板类?
- 无法将指向类的成员函数的函数指针作为参数传递给同一类的另一个成员函数
- 如何将子类作为函数的参数传递给期望基类,然后将该对象传递到指向这些抽象类对象的指针向量中?
- 将函数作为类中的参数传递
- 移动类的成员作为常量引用参数传递
- C++ 将派生类的成员函数指针作为参数传递时选择了错误的模板专用化
- 为什么要将结构传递给函数而不是单独的参数
- 将带有模板化方法的类作为带有GCC的模板参数传递
- 将派生类作为参数传递给方法,该方法是具有智能指针的基类
- 从作为模板参数传递给构造函数的类继承,或者从它们继承
- 如何将模板化类实例作为模板参数传递给另一个模板?
- 如何使用非类型参数传递模板化类的 Ref 或 Ptr
- 将派生类构造函数参数传递给受保护的成员
- 如何通过引用将参数传递给模板类的成员函数?
- 如何在 C++ 中将参数传递给基类构造函数
- 如何将模板函数作为模板类参数传递
- C++编译器问题 (?):无法将参数传递给单独类文件中的函数