C++:name lookup的规则(我的理解,未确定正确性)
2014-02-24 09:29
316 查看
参考材料:C++ primer 5th edition 7.4.1节
首先,明确name lookup是个什么工作。
name lookup, "the process of findging which declarations match the use of a name"。
这个工作是compiler做的事情
然后,我暂时对compiler做name lookup 的规则理解:
总的规则是,使用一个name,这个name必须在这个使用点之前已经declare过。因此,name lookup 在使用点之前进行查找。
有一个特殊点,就是在class member function body中使用的一个name, 只要这个name在class中有declaration(不管是在这个member function body之前还是之后),就都可以使用。但是如果在class中没有declaration,在class 外寻找时,就只能找出现在class之前的declaration。
首先,明确name lookup是个什么工作。
name lookup, "the process of findging which declarations match the use of a name"。
这个工作是compiler做的事情
然后,我暂时对compiler做name lookup 的规则理解:
总的规则是,使用一个name,这个name必须在这个使用点之前已经declare过。因此,name lookup 在使用点之前进行查找。
有一个特殊点,就是在class member function body中使用的一个name, 只要这个name在class中有declaration(不管是在这个member function body之前还是之后),就都可以使用。但是如果在class中没有declaration,在class 外寻找时,就只能找出现在class之前的declaration。
相关文章推荐
- C++模板类继承中的Name Lookup
- 快速理解c++编译器名称查找规则koenig lookup(ADL)
- C++箴言:理解typename的两个含义 nested dependent name(嵌套依赖名字)
- C++ 的名字查找(name lookup)
- C++ 名称查找规则之 Koenig lookup
- C++ 的名字查找(name lookup)
- C++箴言:理解typename的两个含义 nested dependent name(嵌套依赖名字)
- [C++]深入理解sizeof-使用规则及陷阱分析
- [深入理解C++(二)]理解接口继承规则
- [深入理解C++(二)]理解接口继承规则
- 【转载】[C++]深入理解sizeof-使用规则及陷阱分析
- [深入理解C++(二)]理解接口继承规则
- linux下c++程序编译错误--理解typename
- C++模板类继承中的Name Lookup
- C++ 模板 two-phase name lookup
- 理解 C++ 中继承层次的关键在于理解如何确定函数调用
- [深入理解文件系统之六]:Directory Name Lookup Cache
- 立此存照(19)[C++]C++中的名称查找(name lookup)
- C++箴言:理解typename的两个含义
- c++第十周【任务0】理解基类、派生类中构造函数、析构函数