用类做参数,错在哪儿?
麻烦高手赐教!
#include <iostream>
#include <tchar.h>
using namespace std;
class b;
class a
{
friend class b;
public:
a();
~a();
void Init();
void Output();
private:
char *abuffer;
};
a::a()
{
abuffer = new char[26];
}
a::~a()
{
delete []abuffer;
}
void a::Init()
{
for (int i=0;i<26;i++)
{
abuffer[i]='a'+i;
}
}
void a::Output()
{
for(int i=0;i<26;i++)
{
cout<<abuffer[i];
}
}
class b
{
public:
b();
~b();
void Init(a tp,int i);
void Output();
private:
char *bbuffer;
};
b::b()
{
bbuffer = new char [26];
}
b::~b()
{
delete []bbuffer;
}
void b::Init(a tp,int i)
{
bbuffer[i] = tp.abuffer[i];
}
void b::Output()
{
for(int i=0;i<26;i++)
{
cout<<bbuffer[i];
}
}
int _tmain(int argc, _TCHAR* argv[])
{
a exa;
exa.Init();
exa.Output();
cout<<endl;
//应该是下面有问题
b exb;
for(int i=0;i<26;i++)
{
exb.Init(exa,i);
}
exb.Output();
return 0;
}
编译没有错误,但是运行的时候,把a~z输出后,就出错!
应该是用类最参数那儿有问题!