最近C++でインタプリタの作業を始めましたが、何を試してもベクトルや配列を外部クラスのメソッドに渡せないことに悩まされたため、作業したものをすべて削除しました。結局のところ、 intも別のクラスに渡すことはできません。CまたはJavaに頼る前に、C ++にもう一度チャンスを与えることにしましたが、コンパイラーはまだ期待どおりに機能しません。しばらく使っていないので、C ++の簡単なことを忘れているかもしれませんが、これは十分に簡単なようです。私の問題は、同じファイルで定義されていない他のクラスのメソッドに引数を渡すことができないことです。これが私がやろうとしていることです:
メイン: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
これをyieldsでコンパイルする
/tmp/ccAZr6EY.o:関数
main': main.cpp:(.text+0x1a): undefined reference to
MyClass :: add(int、int)'でcollect2:エラー:ldが1つの終了ステータスを返しました
私は一体何を間違っているのですか?また、関数がパラメーター化されていなくても、コンパイラーは同じことを私に怒鳴ります。そのため、ヘッダーに問題があるはずです。
どんな助けでも大歓迎です-ありがとう!