标题:类向前声明小问题
只看楼主
丘山君
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:87
专家分:154
注 册:2017-11-15
结帖率:54.55%
已结贴  问题点数:20 回复次数:5 
类向前声明小问题
两个类,类中相互要用到对方的指针,就把其中一个类向前声明了
但是编译报错了,想请问下是错在哪?谢谢。
程序代码:
#include <iostream>

using namespace std;
class Visitor;//,,,,,,,
//被访问者
class Library{
private :
    int x,y;
public :
    Library(){
        x=0;
        y=0;
    }
    void Accept(Visitor *v){
        v->visit(this);
    }
    void Do(){
        cout<<"x="<<x<<endl;
        cout<<"y="<<y<<endl;
    }
    ~Library(){
        cout<<"Library xigou"<<endl;
    }
};
//访问者
class Visitor{
public :
    Visitor(){
        cout<<"efas"<<endl;
    }
    void visit(Library *l){
        l->Do();
    }

};

int main()
{
   Visitor *pv=new Visitor();
   Library  *pl=new Library();
   pl->Accept(pv);
   delete pl;
   delete pv;
}

加上错误信息。


[此贴子已经被作者于2018-5-16 00:31编辑过]

搜索更多相关主题的帖子: 声明 class Library void cout 
2018-05-16 00:30
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:20 
不要在类内部写成员函数的实现
把实现写在2个类下面就可以了

https://zh.
2018-05-16 00:36
丘山君
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:87
专家分:154
注 册:2017-11-15
得分:0 
回复 2楼 lin5161678
你好,你的回答不太懂,可以再给我详细说下吗?谢谢。
2018-05-16 00:39
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
程序代码:
#include <iostream>

using namespace std;
class Visitor;//,,,,,,,
//被访问者
class Library{
private :
    int x,y;
public :
    Library(){
        x=0;
        y=0;
    }
    void Accept(Visitor *v);
    void Do();
    ~Library();
};
//访问者
class Visitor{
public :
    Visitor(){
        cout<<"efas"<<endl;
    }
    void visit(Library *l);

};

void Library::Accept(Visitor *v){
    v->visit(this);
}

void Library::Do(){
    cout<<"x="<<x<<endl;
    cout<<"y="<<y<<endl;
}

void Visitor::visit(Library *l){
    l->Do();
}

int main()
{
   Visitor *pv=new Visitor();
   Library  *pl=new Library();
   pl->Accept(pv);
   delete pl;
   delete pv;
}
收到的鲜花
  • 丘山君2018-05-16 01:10 送鲜花  1朵  

https://zh.
2018-05-16 00:44
丘山君
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:87
专家分:154
注 册:2017-11-15
得分:0 
回复 4楼 lin5161678
谢谢。
2018-05-16 01:14
Jonny0201
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:52
帖 子:488
专家分:2603
注 册:2016-11-7
得分:0 
用指针的方式相互引用要用分离编译
否则可能会出现无止尽的调用
2018-05-18 13:44



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486960-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017809 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved