首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

c++有关问题 错哪了?

2012-02-29 
c++问题哪里错了????#includeiostreamusingnamespacestdclassBclasstestclassB{public:B(intii){cout

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()修改后的版本。
楼主把你遇到的错误贴出来看看

热点排行