0

私は2つのクラスを持っています

class Car
{
// class Car related methods
public:
setDriversName(QString);
private:
String driversName_;    // This information comes from class DriversName

//Must get the drivers name info, when a particular event in this object occurs;
}

class DriversName
{
//class DriversName related methods
String getDriversName();
private:
String driversName_;
}

だから、今私は2つのクラス間で通信したい、より具体的には、特定のイベントが Car Object で発生したときに、クラスがクラスCarからドライバーの名前を取得するようにします。DriversName

これまでのところ、私はこれらの2つの方法を持っています、

C++ Message passing:

class Car
{
// class Car related methods
public:
setDriversNameObject(DriversName& );
setDriversName()
{
   driversName_ =  DriversName.getDriversName();
}

private:
DriversName driversName_;    // So after setting the Driverclass object, i can directly 
//access the driver's name, whenever the event occurs
String driversName_;
}

class DriversName
{
//class DriversName related methods
String getDriversName();

private:
DriversName driversName_;
}

また

Qt

In mainWindow class:

connect(carObject,eventHasOccured(),this,updateDriversName());


void MainWindow::updateDriversName()
{
    carObject->setDriversName(driversNameObject.getDriversName);
}

Class Car
{
    Q_OBJECT
    signals:
    emit eventHasOccured();

    public:
    setDriversNameObject(DriversName& );

    private:
    DriversName driversName_;              
}

Class DriversName
{
    Q_OBJECT

    String getDriversName();

    private:
    DriversName driversName_;    
}

どちらのソリューションも確実に機能します。ここに私の質問があります:

1)オブジェクト指向の原則に関して、上記の方法に欠陥はありますか。

2) この状況に対処できる最も標準的な方法はどれですか?

3)特定の状況を処理するための他のより良い方法はありますか。

ありがとう。

4

2 に答える 2