有没有熟悉模板的高手,帮忙看看啦
下面这段程序,在vc6.0下编译不能通过,
main.cpp(20) : error C2248: 'i' : cannot access private member declared in class 'A'
main.cpp(20) : error C2248: 'j' : cannot access private member declared in class 'A'
main.cpp(27) : error C2593: 'operator <<' is ambiguous
但是把头文件改成#include<iostream.h>后一切正常。
msdn里说,不带.h的输入输出库是完全基于模板实现的,不只到里面到底有什么奥秘,
各位大虾帮忙看看吧。
1:#include<iostream>
2:
3:using namespace std;
4:
5:class A
6:{
7:public:
8: int i,j;
9:public:
10: A(int i,int j)
11: {
12: this->i=i;
13: this->j=j;
14: }
15:friend ostream& operator<< (ostream& os,A& a);
16:};
17:
18:ostream& operator<<(ostream& os,A& a)
19:{
20: os<<a.i<<'\t'<<a.j;
21: return os;
22:}
23:
24:void main()
25:{
26: A a(3,2);
27: cout<<a;
28: cout<<endl;
29:}