C++の新機能では、未使用の関数Initを使用したコードを使用しています。この未使用関数を持つ点は何ですか?
ヘッダファイル: "KFilter.h"
#include "Eigen/Dense"
class KFilter {
public:
Eigen::VectorXd x_;
KFilter();
virtual ~KFilter();
void Init(Eigen::VectorXd &x_in);
void Predict();
}
がCPPファイル:
#include "KFilter.h"
using Eigen::MatrixXd;
using Eigen::VectorXd;
KFilter::KFilter() {}
KFilter::~KFilter(){}
void KFilter::Init(VectorXd &x_in) {
x_ = x_in;
}
void KFilter::Add_one() {
x_ += 1;
}
後半main.cppにで "KFilter.cpp" は、私は誰かがこのKFilterの一つのオブジェクトを使用してご覧くださいクラス。
KFilter ekf_;
ekf_.x_ = VectorXd(4);
ekf_.x_ < 1, 1, 1, 1;
ekf_.Add_one();
私はそれがsetterとgetterのようなものだと思いますが、なぜInitですか?私はこの種の使用法をC++の教科書で見つけることができませんでした。または、ここで使用されているポインタのためですか?
*はおそらくオブジェクトの初期化に使用するためのセッターです。ここで 'x_'メンバはpublicなので、代入も同様に動作します。確かに教科書のデザインではありません。 :-) –
だから、ヘッダファイルとcppファイルの両方でInitを削除しても、コードは正しく動作します。 – Patrick