Как сделать ссылки между 3 классами? - PullRequest
0 голосов
/ 02 августа 2020

У меня небольшая проблема с моим кодом из-за перекрестной ссылки. У меня есть класс А, который является основным в моей программе. Из этого класса мне нужно выполнить некоторые SQL Request, поэтому я использовал другой класс B для представления моей базы данных и в том, что у меня есть некоторые методы и функции для выполнения моих запросов. Поэтому я включаю classB.h в свой класс A и создаю экземпляр своей базы данных. У меня также есть класс C, который представляет объект и включен в мой класс A. Но из класса AI должен вызвать метод, который находится в моем классе C и которому нужна ссылка на объект базы данных из класса A в сделайте запрос SQL. Более того, класс C уже включен в класс B по многим причинам. Но я не знаю, как я могу включить класс B в свой класс C для использованных методов базы данных, переданных по ссылке.

Спасибо за ответ и извините за мой Engli sh .. .

ClassA.h: Main

#include "ClassB.h"
#include "ClassC.h"

public ref class Main
{
public:

Database^ myDatabase;
Object^ myObject;
int sqlReply;

Main(){
   this->myDtabase = gcnew Database();
   this-> myObject = gcnew Object();
   sqlReply = this->myDatabase->countNbTrue();
   this->myDatabase->InitObject(this->myObject);
   this->myObject->doDatabaseAccessCheck(this->myDatabase);
}
}

ClassB.h: Database

#include "ClassC.h"

public ref class Database
{
public:

Database(){}

private:

int countNbTrue(){
   return mySqlRequestReply;
}

void InitObject (Object^ myObject){
   myObject->setName(mySqlRequestReply);
}

bool databaseAccess(){
   return mySqlRequestReply;
}
}

Class C .h: Object

#include "ClassB.h" //Don't work

public ref class Object
{
public:

Object(){}

private:

void doDatabaseAccessCheck(Database^ myDatabase){
 if(myDatabase->databaseAccess()){
   }
}
}
...