是否有必要在c ++中的继承类的公共部分中调用宏

时间:2017-03-03 15:01:44

标签: c++ inheritance macros

我想将特征库用于程序,并且具有使用特征固定矩阵大小成员的类层次结构。根据Eigen文档,这使得必须将16个字节对齐类。 Eigen提供了一个宏来做到这一点,但是由于我继承,我不确定所述行为是否只发生在基类中。

即。

class A{
    public :
        EIGEN_MAKE_ALIGNED_OPERATOR_NEW
        // member definitions
};

我是否必须重新指定使用宏?

class B : public A{
    public:
       EIGEN_MAKE_ALIGNED_OPERATOR_NEW
       // definitions of B
};

或者在B的定义中省略宏是否足够?

1 个答案:

答案 0 :(得分:1)

在您的示例中,没有必要使用EIGEN_MAKE_ALIGNED_OPERATOR_NEW宏,因为operator new定义的class AB继承。

另一方面,它也没有真正受到伤害,在某些情况下,将宏放入每个本身已经对齐特征成员变量的类中实际上可能更安全。