私がやっている間違いはとてもばかげていると思いますが、何が間違っているのかわかりません。静的および非静的変数といくつかのメソッドを持つクラスがあり、すべてパブリックです。私のプログラムでは、オブジェクトを作成し、このオブジェクトを参照によって一般的なメソッドに渡したいと考えています。
プログラムはコンパイルされず、コンパイラは非常に奇妙なエラー メッセージをスローします。
アーキテクチャ x86_64 の未定義シンボル: "prueba::num"、参照元: ccbRZYqe.o 内の _main ccbRZYqe.o 内の metodoC(prueba*) ccbRZYqe.o 内の prueba::prueba() ccbRZYqe.o 内の prueba::inicio() "prueba::flag"、参照元: ccbRZYqe.o の metodoC(prueba*) ccbRZYqe.o の prueba::prueba() ccbRZYqe.o ld の prueba::inicio(): アーキテクチャ 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;
}