码迷,mamicode.com
首页 > 编程语言 > 详细

类的互相包含------新标准c++程序设计

时间:2017-10-28 23:53:17      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:语句   using   public   ++   报错   ace   pac   cpp   div   

#include<iostream>
using namespace std;
class A;
class B{
    public:
        void f(A* pt){};         
}
class A{
    public:
        void f(B *pt){}
}

第3行声明了A类,A类的定义在后面,之所以要提前声明,是因为B类的定义中用到了A类型(第6行),而此时A类还没有定义,编译会报错。不要第三行,而把A类的定义写在B类前面,是解决不了这个问题的,因为A类中也用到了B类(第10行),把A类的定义写在前面会导致第10行的B因没有定义而报错。c++为此提供的解决办法是:可以简单地将一个类的名字提前声明,写法如下:

class 类名;

  尽管可以提前声明,但是在一个类的定义出现之前,仍然不能有任何会导致该类对象被生成的语句。但是用该类的指针或引用是没有问题的。 

 

新标准c++程序设计 

 

类的互相包含------新标准c++程序设计

标签:语句   using   public   ++   报错   ace   pac   cpp   div   

原文地址:http://www.cnblogs.com/goudanli/p/7725281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!