q****x 发帖数: 7404 | 1 C++对这种shadow怎么界定的?gcc -Wall不报错。
class X {
public:
X(int x): x(x) {}
private:
int x;
};
int main() {
X x(3);
} |
a********m 发帖数: 15480 | |
q****x 发帖数: 7404 | 3 比如函数体里x = 3,x不是有二义性了。
【在 a********m 的大作中提到】 : 没冲突呀?为啥要shadow?
|
a********m 发帖数: 15480 | 4 哦。local优先级应该最高。初始化列表x(x)前面一个没二义性,后面取local。
【在 q****x 的大作中提到】 : 比如函数体里x = 3,x不是有二义性了。
|
q****x 发帖数: 7404 | 5 C++标准在哪里解释这个优先级问题了吗?
【在 a********m 的大作中提到】 : 哦。local优先级应该最高。初始化列表x(x)前面一个没二义性,后面取local。
|
a********m 发帖数: 15480 | 6 标准没找到。ibm这个文档可能有点用。第一章。
http://www-01.ibm.com/support/docview.wss?uid=swg27002103&aid=1
基本上看scope,越里面优先级越高。function的scope肯定在类的scope里面。 |
k****5 发帖数: 546 | |