PDA

View Full Version : سوال: دسترسی کلاس ها به يکديگر



negative60
یک شنبه 14 اردیبهشت 1393, 10:56 صبح
سلام
چطور ميشه دو کلاس رو طوری ايجاد کرد که به توابع هم دسترسی داشته باشند

headerA.h
//#ifndef HEADERB//#define HEADERB
#include "headerA.h"
//#endif


class ClassB
{
public:
ClassA *clsA; //
};


headerB.h
//#ifndef HEADERB
//#define HEADERB
#include "headerA.h"
//#endif


class ClassB
{
public:
ClassA *clsA; //
};


Main.cpp
#include "headerA.h"
#include "headerB.h"


void main()
{


}


همانطور که مشخص هست اين کد با خطا مواجه ميشه چون هدر ها دوبار اينکلود شده اند خوب ما تا هدر کلاس ديگه رو اينکلود نکنيم که نميتونيم از اون اشاره گری بسازيم, راه حل چيه؟

rahnema1
یک شنبه 14 اردیبهشت 1393, 15:08 عصر
سلام
چون در هدرها شما فقط از اشاره گر کلاس مقابل استفاده می کنید نیازی به تعریف کلاس مقابل ندارید و کافیه از اعلان اون استفاده کنید

//headerA.h
class ClassB;
class ClassA
{
public:
ClassB *clsB;
void fA(){};
};


//headerB.h
class ClassA;
class ClassB
{
public:
ClassA *clsA;
void fB(){};
};


//main.cpp
#include "headerA.h"
#include "headerB.h"
int main()
{
ClassB b;
ClassA a;
b.fB();
b.clsA->fA();
a.clsB=&b;
}