各位请看下面的代码
1 struct A {};
2
3 struct B
4 {
5 public:
6 B(){}
7 B(A& a){}
8 };
9
10 struct B1 : public B
11 {
12 public:
13 B1(const B& b) : B(b)
14 {}
15 };
16
17 int main()
18 {
19 A a;
20 B1 b1(a);
21
22 return 0;
23 }
上面的代码可以编译通过(gcc和vs2005下均测试通过),但是如果我将第13行的const修饰符去掉,编译就不能通过,报错说没有匹配的函数,请问各位高手这是为什么?望指教。