저는 실수를하는 것이 너무 바보 같아요. 내가 뭘 잘못하고 있는지 모르겠습니다. 정적 및 비 정적 변수와 일부 메서드를 모두 포함하는 클래스가 있습니다. 내 프로그램에서 개체를 만들고이 개체를 참조로 일반 메서드에 전달하고 싶습니다.메서드를 참조하여 객체를 전달하십시오.
프로그램이 컴파일되지 않고 컴파일러에서 정말 이상한 오류 메시지가 발생합니다. ccbRZYqe.o에 ccbRZYqe.o prueba : prueba()에 ccbRZYqe.o에 _main metodoC (prueba *를)에서 참조 "prueba : NUM", :
정의되지 않은 아키텍처 x86_64에 대한 상징 prueba :: 크리에이터() ccbRZYqe.o의에서 참조 "prueba :: 플래그": ccbRZYqe.o 에 metodoC (prueba의 *) prueba :: prueba() ccbRZYqe.o prueba :: 크리에이터의()에서 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ánchez de nada. 중복 된 심볼에 대해 문장 하나를 추가 했으므로'prueba' 클래스를 사용하는 번역 단위가 둘 이상있는 경우 중요 할 수 있습니다. – juanchopanza