typedef int abc;
class Some{
public:
abc foo(){...}
typedef double abc;
};
В приведенном выше коде, я понимаю, что я получаю сообщение об ошибке:поиск имен в списке параметров функции члена
error: changes meaning of 'abc' from 'typedef int abc'
, потому что в книге C++ праймер, пятый Edtion, он говорит :
Class definitions are processed in two phases:
1.First, the member declarations are compiled.
2.Function bodies are compiled only after the entire class has been seen.
Но в коде здесь:
typedef int abc;
class Some{
public:
int foo(abc){...}
typedef double abc;
};
Я установил abc
в списке параметров. Но я не получил такую ошибку, и компилятор работает отлично. Почему последний код не получит мне никакой ошибки, аналогичной предыдущей?
На ваш вопрос? – Oswald
мой плохой. Я отредактировал его. – longtengaa