typedef int abc;
class Some{
public:
abc foo(){...}
typedef double abc;
};
在上面的代码中,我得到一个错误:
error: changes meaning of 'abc' from 'typedef int abc'
因为在c++ Primer,fifth edtion一书中,它说:
类定义分两个阶段处理:
1.首先编译成员声明。
2.函数体只有在看到整个类之后才编译。
但是在这里的代码中:
typedef int abc;
class Some{
public:
int foo(abc){...}
typedef double abc;
};
我abc
在参数列表中设置。但我没有得到那种错误,编译器工作得很好。为什么后面的代码不会给我任何类似于前者的错误?