C ++为什么不能重新声明类成员函数,但可以重新声明普通函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C ++为什么不能重新声明类成员函数,但可以重新声明普通函数相关的知识,希望对你有一定的参考价值。
void say();
void say(); // ok
class Test{
void say();
void say(); // error class member cannot be redeclared
};
这是因为类成员函数声明分配了内存,以便编译器不允许重新声明?预先感谢。
答案
您可以根据需要在c ++中声明多次(只要它们都相同)。您只能定义一次。
对于类成员声明,尽管您声明了某些内容,但实际上是在定义类成员,并且不允许两次声明同一成员。如果我们使用变量而不是函数,则规则存在的原因更加明显:
extern int a;
extern int a; // just a redeclaration, that's fine
struct B
{
int b;
int b; // not allowed, is this a second member also called b or is it a redeclaration of the existing member?
};
以上是关于C ++为什么不能重新声明类成员函数,但可以重新声明普通函数的主要内容,如果未能解决你的问题,请参考以下文章