私はそれがとても馬鹿だと思っている間違いだと思いますが、私は何が間違っているのか分かりません。 私は静的および非静的変数といくつかのメソッドを持つクラスを公開しています。 私のプログラムでは、オブジェクトを作成し、このオブジェクトを参照によって一般的なメソッドに渡したいと思っています。メソッドを参照してオブジェクトを渡す
プログラムはコンパイルされず、コンパイラは本当に奇妙なエラーメッセージをスローします。アーキテクチャx86_64のため
未定義シンボル: "prueba :: NUM"、から を参照:ccbRZYqe.oにccbRZYqe.o でccbRZYqe.oで _main metodoC(pruebaの*)prueba :: prueba() prueba :: INICIO()ccbRZYqe.oで "prueba ::フラグ"、から参照: metodoC(prueba *)ccbRZYqe.o でprueba :: prueba()ccbRZYqe.o pruebaで:: INICIO()でccbRZYqe.o ld:アーキテクチャx86_64のシンボルが見つかりませんcollect2:ldが1の終了ステータスを返しました
コード
#include <iostream>
using namespace std;
class prueba
{
private:
public:
static bool flag;
static int num;
float complejo;
// Metodos
//--------------
prueba()
{
flag = false;
num = 0;
complejo = 0.0;
}
void inicio()
{
flag = true;
num = 5;
complejo = 3.2;
}
bool cambio()
{
flag++;
num++;
complejo++;
}
};
bool metodoC(prueba* ensayo)
{
cout << "-----------------------------------------" << endl;
cout << "- flag: " << ensayo->flag << endl;
cout << "- num: " << ensayo->num << endl;
cout << "- Complejo: " << ensayo->complejo << endl;
cout << "-----------------------------------------" << endl;
return true;
}
//-----------------------------------
// M A I N
//-----------------------------------
int main(int argc, char *argv[])
{
prueba test;
test.inicio();
test.num += 2;
test.complejo += 5.2;
metodoC(&test);
return 0;
}
ご回答いただきありがとうございます。/Gracias por tu respuesta。 –
@JorgeVegaSánchezde nada。重複したシンボルについて1つの文章を追加しました。もしあなたが 'prueba'クラスを使って複数の翻訳単位を持っているなら、それは重要になります。 – juanchopanza