Если я это сделаю:
// 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