Original Post
i have 2 classes
class class1{public:class1(const class2 &c){}};class class2{public:class2(){}};the compiler give me error because the class2 isn't defined, how to fix that?
class class1{public:class1(const class2 &c){}};class class2{public:class2(){}};Quote:
Original post by _fastcall
Use a forward declaration for B or move the definition for class B above class A. See also: Organizing Code Files in C and C++.
Quote:
Original post by codder88
if i add "class class2;" at the top of the file the compiler give me again the errors
Quote:
in fact i want to use the class1 in class2 and class2 in class1
#pragma once#include "main.h"class CClass2;class CClass1{ public: CClass1(const CClass2 &Class2) { this->SetVar(Class2.GetVar()); } void SetVar(int val) { var=val; } int GetVar() const { return var; } private: int var;};class CClass2{ public: CClass2(const CClass1 &Class1) { var = 5; } int GetVar() const { return var; } private: int var;};Quote:
CClass2(const CClass1 &Class1) { var = 5; }
class CClass1{ public: CClass1(const CClass2 &Class2); void SetVar(int val); int GetVar() const; private: int var;};#include "CClass1.h"#include "CClass2.h"CClass1::CClass1(const CClass2 &Class2){ this->SetVar(Class2.GetVar());}void CClass1::SetVar(int val){ var=val;}int CClass1::GetVar(){ return var;}// contents of main.h// contents of class2.hclass CClass2;class CClass1{ public: CClass1(const CClass2 &Class2); // OK, forward declaration void SetVar(int val) { var=val; } int GetVar() const { return var; } private: int var;};// contents of class2.hclass CClass2{ public: CClass2(const CClass1 &Class1) { var = 5; } int GetVar() const { return var; } private: int var;};// implementation file class1.cpp// Couldn't do this earlier, requires a full class definition.CClass1::CClass1(const CClass2 &Class2){ this->SetVar(Class2.GetVar());}This topic has been locked by a moderator. New replies are not allowed.
With your permission, GameDev.net uses analytics cookies to understand how people use the platform. You can accept analytics or continue with necessary cookies only. Learn more