C++的一個疑惑
各位請看下面的代碼
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 }
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修飾符去掉,編譯就不能通過,報錯說沒有匹配的函數,請問各位高手這是為什么?望指教。
posted on 2010-12-20 21:15 孔雀 閱讀(2604) 評論(12) 編輯 收藏 引用 所屬分類: C/C++