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

查错解决方法

2013-01-02 
查错classCclassA{structB{C *m_functionstructB *m_next}staticstructB *headpublic:staticvoidinse

查错
classC;
classA
{
structB
{
C *m_function;
structB *m_next;
};
staticstructB *head;
public:
staticvoidinsert(C *f);
};
classC
{
public:
C()
{
A::insert(this);
}
};
A::B *A::head;
voidA::insert(C *f)
{
structB *old=head;
head =newstructB;
head->m_function = f;
head->m_next = old;
}

提示有SEGV 段错误
head->m_next = old; 把这行注释掉没有提示
[解决办法]

class C;
class A
{
    struct B
    {
        C *m_function;
        struct B *m_next;
    };
    static struct B *head;
public:
    static void insert(C *f);
};
class C
{
public:
    C()
    {
        A::insert(this);
    }
};
A::B *A::head;
void A::insert(C *f)
{
    struct B *old=head;
    head =new struct B;
    head->m_function = f;
    head->m_next = old;
}

热点排行