0

我有一个名为 Entity 的类的子类,我不希望该子类覆盖 Entity 的构造函数,但也调用 Entity 的构造函数。所以我这样声明构造函数:

EntitySphere(GLuint shader):Entity(shader){
    //Code
}

但是只有当我在类定义中实现该函数时,该方法才有效(或者我得到很多错误)。我怎样才能达到同样的效果,但能够在 .cpp 文件中实现构造函数?

4

1 回答 1

3

要在类定义之外实现构造函数(或任何方法),您需要在方法名称之前指定类的名称:

EntitySphere::EntitySphere(GLuint shader): Entity(shader) {
  // ...
}

请注意该EntitySphere::方法其余部分之前的部分。

否则,编译器不知道您为哪个方法提供定义。(也许它可以被允许猜测,但是如果它猜错了并且将该实现与您程序中的某些其他函数相关联怎么办?)

于 2012-10-12T13:34:31.680 回答