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文件:“KFilter.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类的一个对象。
KFilter ekf_;
ekf_.x_ = VectorXd(4);
ekf_.x_ < 1, 1, 1, 1;
ekf_.Add_one();
我想这有点像setter和getter,但为什么是Init?我在C ++教科书上找不到这种用法。或者是因为这里使用了指针?
答案 0 :(得分:0)
您正在谈论的init函数是aconstructor。即使没有提到,所有类都有一个构造函数。在这种情况下,您可以编写Kfilter() = default;
或不编写它来代替编写空的comstructor。
在某些情况下,可以删除此默认构造函数,例如,如果类包含一些不是默认构造的成员。
您也可以通过编写Kfilter() = delete;
来删除此默认构造函数,这会使该类不是默认的可构造的。