拥有 3 个具有相同名称的函数,例如:
bool VideoEncoder::AddFrame(AVFrame* frame, const char* soundBuffer, int soundBufferSize)
bool VideoEncoder::AddFrame( const char* soundBuffer, int soundBufferSize)
bool VideoEncoder::AddFrame(AVFrame* frame)
我们可以吗?
最佳答案
是的,它叫做函数重载,是 C++ 的标准特性。
根据您传递给它们的参数的数量和类型,函数必须是可解析的。例如,如果您定义了以下重载,这将中断:
void A::foo(long n);
void A::foo(double n);
A a;
int i = 42;
a.foo(i);
这会产生无法解决的歧义。
关于C++ 我们可以创建类函数的覆盖吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4297233/