上课随堂 --01

上节课老师当堂叫我们手写一些很奇怪的东西,一脸蒙蔽,然后这节课老师讲解了题目,也有所了解。
题目的大意很奇葩,就是要定义一个类x,里面有一个指向另一个类y的指针,而y中含有一个x的成员。

代码:


class y;          //必须先声明一个y类,不然x里面的指针不懂要指向的y是什么。

class x
{
    y *p;
};

class y
{
    x p1;
};

当然有人说可不可以这样呢


class x;          

class y
{
    x p;
};

class x
{
    y *p1;
};

答案是不可以的,因为开辟空间的时候,指针就是固定的指针的大小,所以像第一种那样写是没问题的,但是第二种由于类x的大小不知道多大,这时候编译器就会疑问,到底要开多大的空间,这时候就会出错。

posted @ 2016-05-25 16:37  咸疑人  阅读(144)  评论(1编辑  收藏  举报