如何用参数重写构造函数并在单独的文件中实现它

How to override constructor with parameters and implement it in separate file

本文关键字:文件 实现 单独 参数 何用 重写 构造函数      更新时间:2023-10-16

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

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

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

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

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

请注意,EntitySphere::部分位于方法的其余部分之前。

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