小编KBa*_*uin的帖子

为什么虚拟析构函数?

我正在浏览一些代码,计划将其用于我的研究.所以头文件看起来像这样

#ifndef SPECTRALCLUSTERING_H_
#define SPECTRALCLUSTERING_H_

#include <vector>
#include <eigen3/Eigen/Core>

class SpectralClustering {
public:
    SpectralClustering(Eigen::MatrixXd& data, int numDims);
    virtual ~SpectralClustering();

    std::vector<std::vector<int> > clusterRotate();
    std::vector<std::vector<int> > clusterKmeans(int numClusters);
    int getNumClusters();

protected:
    int mNumDims;
    Eigen::MatrixXd mEigenVectors;
    int mNumClusters;
};

#endif /* SPECTRALCLUSTERING_H_ */
Run Code Online (Sandbox Code Playgroud)

后者在主代码中

#include "SpectralClustering.h"
#include <eigen3/Eigen/QR>

SpectralClustering::SpectralClustering(Eigen::MatrixXd& data, int numDims):
    mNumDims(numDims),
    mNumClusters(0)
Run Code Online (Sandbox Code Playgroud)

所以我不明白为什么在.h文件中使用虚拟析构函数.从这个我们可以得知,虚析构函数是有用时,你可以通过指针删除派生类的实例,立足class.But我想,这是不是跟这个code.Can有人区分解释这一切?

c++ inheritance virtual-destructor

1
推荐指数
1
解决办法
1595
查看次数

如何计算向量的绝对值?

 std::vector<float> a {-0.2, 2.0, -0.9, 2.4, 22.0}
Run Code Online (Sandbox Code Playgroud)

如何获取所有向量元素的绝对值?

c++ vector

-14
推荐指数
1
解决办法
7273
查看次数

标签 统计

c++ ×2

inheritance ×1

vector ×1

virtual-destructor ×1