C++:name lookup的规则(我的理解,未确定正确性)

本文介绍了C++编译器如何进行名称查找(namelookup),确保使用的标识符已在声明前定义。特别关注了类成员函数体内标识符的查找规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考材料: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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值