だから私はc++に不慣れで、科学的なアプリケーションのために書いています。
データは、いくつかの入力テキストファイルから読み込む必要があります。
現在、これらの入力変数をオブジェクトに格納しています。(それをinputObjと呼びましょう)。
この「inputObj」をすべてのオブジェクトに渡す必要があるのは正しいですか。グローバル変数の複雑なバージョンになっているようです。ですから、OOPのポイントを見逃しているのではないかと思います。
私は自分のプログラムのg++コンパイル可能な小さな例を作成しました:
#include<iostream>
class InputObj{
// this is the class that gets all the data
public:
void getInputs() {
a = 1;
b = 2;
};
int a;
int b;
};
class ExtraSolver{
//some of the work may be done in here
public:
void doSomething(InputObj* io) {
eA = io->a;
eB = io->b;
int something2 = eA+eB;
std::cout<<something2<<std::endl;
};
private:
int eA;
int eB;
};
class MainSolver{
// I have most things happening from here
public:
void start() {
//get inputs;
inputObj_ = new InputObj();
inputObj_ -> getInputs();
myA = inputObj_->a;
myB = inputObj_->b;
//do some solve:
int something = myA*myB;
//do some extrasolve
extraSolver_ = new ExtraSolver();
extraSolver_ -> doSomething(inputObj_);
};
private:
InputObj* inputObj_;
ExtraSolver* extraSolver_;
int myA;
int myB;
};
int main() {
MainSolver mainSolver;
mainSolver.start();
}
質問の要約:私のオブジェクトの多くは同じ変数を使用する必要があります。私の実装はこれを達成する正しい方法ですか。