私は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)特定の状況を処理するための他のより良い方法はありますか。
ありがとう。