【发布时间】:2010-09-21 03:46:46
【问题描述】:
如果我这样做:
// In header
class Foo {
void foo(bar*);
};
// In cpp
void Foo::foo(bar* const pBar) {
//Stuff
}
编译器不会抱怨 Foo::foo 的签名不匹配。但是,如果我有:
void foo(const bar*); //In header
void Foo::foo(bar*) {} //In cpp
代码将无法编译。
发生了什么事? 我正在使用 gcc 4.1.x
【问题讨论】:
-
您的意思是在第二个示例中将 const 放在 * 的另一侧吗?有些人通过解释其含义的差异来回答,而其他人则通过解释 const 是在 cpp 还是 h 文件中的差异来回答。
-
您应该为您的问题选择一个答案,或者如果它不是您要寻找的答案,请更新。