c++问题 哪里错了????
#include <iostream>
using namespace std;
class B;
class test;
class B
{
public:
B(int ii)
{
cout < < "B::B() " < < endl;
i = ii;
}
void f() {cout < < "B:f() i = " < < i < < endl;}
void f2()
{
t = new test(this);
delete t;
}
private:
int i;
test *t;
};
class test
{
public:
test() {}
test(B* b) {b.f();}
};
int main()
{
B b(5);
b.f2();
return 0;
}
[解决办法]
void f2()
{
t = new test(this); //这里有问题,this不确定
delete t;
}
class{
...
test(B* b) {b.f();} //指针应该用-〉吧
...
};
[解决办法]
#include <iostream>
using namespace std;
class B;
class test;
class B
{
public:
B(int ii)
{
cout < < "B::B() " < < endl;
i = ii;
}
void f() {cout < < "B:f() i = " < < i < < endl;}
void f2();
private:
int i;
test *t;
};
class test
{
public:
test() {}
test(B* b) {b-> f();} ///
};
void B::f2() //////////
{
t = new test(this);
delete t;
}
int main()
{
B b(5);
b.f2();
return 0;
}
[解决办法]
是楼主环境的问题,我用g++编译通过,并得到了结果如下:
B::B()
B:f() i = 5
PS:编的是gexy()修改后的版本。
楼主把你遇到的错误贴出来看看