当前位置: 首页 > news >正文

网站建设丶金手指花总11成都家装公司

网站建设丶金手指花总11,成都家装公司,光泽县规划建设局网站,app开发大概要多少钱我们知道C的类应当是先定义,然后使用。但在处理相对复杂的问题、考虑类的组合时,很可能遇到俩个类相互引用的情况,这种情况称为循环依赖。 例如: class A { public:void f(B b);//以B类对象b为形参的成员函数//这里编译错位&…

我们知道C++的类应当是先定义,然后使用。但在处理相对复杂的问题、考虑类的组合时,很可能遇到俩个类相互引用的情况,这种情况称为循环依赖。

例如:

class A
{
public:void f(B b);//以B类对象b为形参的成员函数//这里编译错位,因为'B'为为止符号
};class B
{
public:void g(A a);
};

这里类A的公有成员函数f的形参是类B的对象,同时类B的公有成员函数g也以类A的对象为形参。由于在使用一个类之前,必须首先定义该类,因此无论将哪一个类的定义放在前面,都会引起编译错误。结局这个问题的方法,就是使用前向引用声明。前向引用声明,是在引用未定义的类之前,将该类的名字告诉编译器,试编译器知道那是一个类名。这样,当程序中使用这个类名时,编译器就不会认为是错误,而类的完整定义可以在程序的其他地方。在上述程序加上下面的前向引用声明,问题就解决了。

class B; //前向引用声明
class A//A类的定义
{
public://外部接口void f(B b);//以B类对象b为形参的成员函数};class B//B类的定义
{
public://外部接口void g(A a);//以A类对象a为形参的成员函数
};

使用前向引用声明虽然可以解决一些问题,但它并不是万能的。需要注意的是,尽管使用了前向引用声明,但是在提供一个完整的类声明之前,不能定义该类的对象,也不能在内联成员函数中使用该类的对象。请看下面的程序段:

class Fred;    //前向引用声明
class Barney
{Fred x;    //错误:类Fred的声明尚不完善
};
class Fred
{Barney y;
};

 编译出错的原因是对此类Fred的前向引用声明只能说明Fred是一个类名,而不能给出该类的完整定义,因此在类Barney中不能定义类Fred的数据成员。

再看下面这一段程序:

class Fred;    //前向引用声明class Barney
{
public:void method(){x->yabbaDabbaDo();    //错误:Fred类的对象在定义之前被使用}
private:Fred* x;   //正确,经过前向引用声明,可以声明Fred类的对象指针
};class Fred
{
public:void yabbaDabbaDo();
private:Barney* y;
};

出错原因:类Barney的内联函数中使用了由x所指向、Fred类的对象,而此时Fred类尚未完整地定义。

应该记住:当你使用前向引用声明时,你只能使用被声明的符号,而不能涉及类的任何细节。

C++的类可以进行前向声明。但是,仅仅进行前向声明而没有定义的类是不完整的,这样的类,只能用于定义指针、引用、以及用于函数形参的指针和引用。
而不能定义对象(因为此时编译器只知道这是个类,还不知道这个类的大小有多大),也不能访问类的对象,任何形式的访问都不允许(因为此时根本不知道有些什么成员)。等到类正式定义以后,就可以以各种方式使用该类了。

转载自:https://www.cnblogs.com/wkfvawl/p/10801725.html

http://www.yayakq.cn/news/599346/

相关文章:

  • 如何建立自己的微网站烟台公司网站开发
  • 网站开发都需要什么工作搜狗首页排名优化
  • 确定网站建设目标新手学做网站需要注意的几点
  • opencart做网站视频淘货铺
  • 类似建设通的网站alpha wordpress 版本
  • 网站 动态 静态怎样建个小公司的网站
  • 十大网站黄页的免费360网址
  • 万网网站安装制作网页之前必须先建立的是
  • 怎么注册网站挣流量越秀网站建设策划
  • 现在流行用什么语言做网站c 做网站加载多个图片
  • 湖北网站推广公司技巧wordpress中文主题 wp-cms
  • 郑州大学现代远程教育《网页设计与网站建设》课程考核要求建筑企业公司
  • 驻马店北京网站建设无锡工程建设招标网站
  • ps如何做网站wordpress水墨主题
  • 做公司英文网站网站开发培训培训班
  • 响应式mvc企业网站源码太原网站设计制作
  • 如何做网站建设方案wordpress啦去
  • 吴江企业网站制作一个网站的建设流程有哪些
  • 重庆牌联盟官网网站国家基础设施建设网站
  • 山西成宁做的网站有口碑的盐城网站开发
  • 广西华宇建设集团网站哪里网站建设公司好
  • wordpress服务器的链接被阻止南昌seo数据监控
  • 上海网站注销吗定制开发一个网站多少钱
  • 天津网站建设noakj长沙培训网站建设
  • 做钓鱼网站违法吗it外包服务平台
  • 汾阳做网站的公司谷歌seo排名工具
  • 新乡+网站建设视频网站架构
  • 福州最好的网站建设服务商企业网站标题如何设置
  • 重庆市工程建设交易中心网站wordpress go页面如何使用
  • 网站建设费用会计处理有个专门做dnf游戏币的网站