我认为我做的错误很愚蠢,但我不知道我做错了什么。我有一个包含静态和非静态变量以及一些方法的类,它们都是公共的。在我的程序中,我想创建一个对象并通过引用将此对象传递给通用方法。
该程序无法编译,编译器会抛出非常奇怪的错误消息。
架构 x86_64 的未定义符号:“prueba::num”,引用自:ccbRZYqe.o 中的 _main ccbRZYqe.o 中的metodoC(prueba*) ccbRZYqe.o 中的prueba::prueba() “prueba::flag”,引用自:ccbRZYqe.o 中的 medoC(prueba*) 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;
}