1

我对 C++ 中的 const 关键字有疑问。我有以下课程:

脚.h

class Foot
{
public:
   Foot (bool isRightFoot);
   const Vector internFootAxis;
   const Vector externFootAxis;
   bool isRightFoot;
private:
   Body* body;
}

其中 Vector 是一个实现基本 R^3 向量操作的类。internFootAxis 表示从脚的中心(表示为 Body 对象 - 这是表示物理对象的类)到大脚趾的向量。externFootAxis 表示从脚的中心到小脚趾的向量。

我希望 internFootAxis 和 externFootAxis 的初始值为 const (因为我在图形显示主循环的每次迭代中将运算符应用于那些改变向量内部状态的向量)。不幸的是,internFootAxis(t=0) 和 externFootAxis(t=0) 的值取决于我是考虑左脚还是右脚,因此我需要在 Foot 的构造函数内部而不是在类外部声明它们的值。

从技术上讲,我想做以下事情

脚.cpp

Foot::Foot(bool isRightFoot)
{
body = new Body();
     if (isRightFoot)
     {
         internFootAxis(1,1,0);
         externFootAxis(1,-1,0);
     }
     else
     {
         internFootAxis(1,-1,0);
         externFootAxis(1,1,0);
     }
}

有没有一种简单的方法可以做到这一点?非常感谢你的帮助

五。

4

1 回答 1

1

使用初始化列表:

Foot::Foot(bool isRightFoot)
  : internFootAxis( 1, isRightFoot ? 1 : -1, 0)
  , externFootAxis( 1, isRightFoot ? -1 : 1, 0)
{
    body = new Body();
}
于 2013-05-02T15:26:25.710 回答