我有一个名为Entity的类的子类,我不希望该子类覆盖Entity的构造函数,但也调用Entity的构造器。所以我这样声明构造函数:
EntitySphere(GLuint shader):Entity(shader){
//Code
}
但只有当我在类定义中实现函数时,该方法才有效(或者我会遇到很多错误)。如何实现同样的目的,但能够在.cpp文件中实现构造函数?
要在类定义之外实现构造函数(或任何方法),需要在方法名之前指定类的名称:
EntitySphere::EntitySphere(GLuint shader): Entity(shader) {
// ...
}
请注意,EntitySphere::
部分位于方法的其余部分之前。
否则,编译器不知道您为哪个方法提供定义。(也许它可以被允许猜测,但如果它猜错了,并将该实现与程序中的其他功能关联起来,该怎么办?)