我认为我做错了这个错误是如此愚蠢,但我不知道我做错了什么。 我有一个类与静态和非静态变量和一些方法,所有公共。 在我的程序中,我想创建一个对象,并通过引用将此对象传递给一个通用方法。通过引用的方法传递一个对象
该程序不编译,编译器会抛出真正奇怪的错误消息。对于架构x86_64的
未定义的符号: “prueba :: NUM”,从引用 : _main中ccbRZYqe.o在ccbRZYqe.o prueba :: prueba()在ccbRZYqe.o metodoC(prueba *) prueba :: INICIO()在ccbRZYqe.o “prueba ::标志”,从引用:在ccbRZYqe.o metodoC(prueba *)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。我添加了一个关于重复符号的句子,如果您有多个使用“prueba”类的翻译单元,这可能很重要。 – juanchopanza