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

怎么免费申请个人网站it外包公司是什么意思

怎么免费申请个人网站,it外包公司是什么意思,网站所有权 备案,crm开源前置声明相关 一个前置声明是指在程序员尚未给出完整定义之前对一个标示符(一个类型、一个变量或者一个函数)的声明。一个很简单的例子就是我们在函数A中使用了函数B#xff0c;但是函数B的声明在函数A之后#xff0c;这个时候#xff0c;就需要对函数B进行前置声明#xf… 前置声明相关 一个前置声明是指在程序员尚未给出完整定义之前对一个标示符(一个类型、一个变量或者一个函数)的声明。一个很简单的例子就是我们在函数A中使用了函数B但是函数B的声明在函数A之后这个时候就需要对函数B进行前置声明实际上就是在函数A之前提供一个函数B的原型(prototype)。这种现象其实在C语言编程中我们已经习以为常了在C中亦是如此只不过在编写较大规模程序的时候由于定义了较多的类而这些类之间有可能是互相依赖的换言之类与类之间会互相引用包括对成员函数的引用等等。 比如需要在文档类调用视图类 在doc头文件加前置声明class CTestView;如有必要在doc源文件加上testview.cpp或者加在头文件也可在testview也是如此在头文件加前置声明class CTestDoc;源文件加testdoc.cpp或者加在头文件也可 一、类嵌套的疑问 C头文件重复包含实在是一个令人头痛的问题前一段时间在做一个简单的数据结构演示程序的时候不只一次的遇到这种问题。假设我们有两个类A和B分别定义在各自的有文件A.h和B.h中但是在A中要用到BB中也要用到A但是这样的写法当然是错误的 复制到剪贴板  C/C代码 [cpp] view plaincopy class B;         class A     {        public:        B b;     };         class B     {        public:        A a;     };          因为在A对象中要开辟一块属于B的空间而B中又有A的空间是一个逻辑错误无法实现的。在这里我们只需要把其中的一个A类中的B类型成员改成指针形式就可以避免这个无限延伸的怪圈了。为什么要更改A而不是B因为就算你在B中做了类似的动作也仍然会编译错误表面上这仅仅上一个先后顺序的问题。为什么会这样呢因为C编译器自上而下编译源文件的时候对每一个数据的定义总是需要知道定义的数据的类型的大小。在预先声明语句class B;之后编译器已经知道B是一个类但是其中的数据却是未知的因此B类型的大小也不知道。这样就造成了编译失败VC6.0下会得到如下编译错误error C2079: ‘b’ uses undefined class ‘B’将A中的b更改为B指针类型之后由于在特定的平台上指针所占的空间是一定的在Win32平台上是4字节这样可以通过编译。 二、不同头文件中的类的嵌套 在实际编程中不同的类一般是放在不同的相互独立的头文件中的这样两个类在相互引用时又会有不一样的问题。重复编译是问题出现的根本原因。为了保证头文件仅被编译一次在C中常用的办法是使用条件编译命令。在头文件中我们常常会看到以下语句段以VC6.0自动生成的头文件为例 #if !defined(AFX_STACK_H__1F725F28_AF9E_4BEB_8560_67813900AE6B__INCLUDED_)#define AFX_STACK_H__1F725F28_AF9E_4BEB_8560_67813900AE6B__INCLUDED_//很多语句……#endif 其中首句#if !defined也经常做#ifndef作用相同。意思是如果没有定义过这个宏那么就定义它然后执行直到#endif的所有语句。如果下次在与要这段代码由于已经定义了那个宏因此重复的代码不会被再次执行。这实在是一个巧妙而高效的办法。在高版本的VC上还可以使用这个命令来代替以上的所有#pragma once它的意思是本文件内的代码只被使用一次。 但是不要以为使用了这种机制就全部搞定了比如在以下的代码中 C/C代码 [cpp] view plaincopy //文件A.h中的代码     #pragma once         #include “B.h”         class A     {        public:        B* b;     };          C/C代码 [cpp] view plaincopy //文件B.h中的代码     #pragma once         #include “A.h”         class B     {        public:        A* a;     };            这里两者都使用了指针成员因此嵌套本身不会有什么问题在主函数前面使用#include “A.h”之后主要编译错误如下error C2501: ‘A’ : missing storage-class or type specifiers仍然是类型不能找到的错误。其实这里仍然需要前置声明。分别添加前置声明之后可以成功编译了。代码形式如下 C/C代码 复制到剪贴板  C/C代码 [cpp] view plaincopy //文件A.h中的代码     #pragma once         #include “B.h”         class B;         class A     {        public:        B* b;     };          [cpp] view plaincopy //文件B.h中的代码     #pragma once         #include “A.h”         class B;         class B     {        public:        A* a;     };          这样至少可以说明头文件包含代替不了前置声明。有的时候只能依靠前置声明来解决问题。我们还要思考一下有了前置声明的时候头文件包含还是必要的吗我们尝试去掉A.h和B.h中的#include行发现没有出现新的错误。那么究竟什么时候需要前置声明什么时候需要头文件包含呢 三、两点原则 头文件包含其实是一想很烦琐的工作不但我们看着累编译器编译的时候也很累再加上头文件中常常出现的宏定义。感觉各种宏定义的展开是非常耗时间的远不如自定义函数来得速度。我仅就不同头文件、源文件间的句则结构问题提出两点原则仅供参考 第一个原则应该是如果可以不包含头文件那就不要包含了。这时候前置声明可以解决问题。如果使用的仅仅是一个类的指针没有使用这个类的具体对象非指针也没有访问到类的具体成员那么前置声明就可以了。因为指针这一数据类型的大小是特定的编译器可以获知。   第二个原则应该是尽量在CPP文件中包含头文件而非在头文件中。假设类A的一个成员是是一个指向类B的指针在类A的头文件中使用了类B的前置声明并便宜成功那么在A的实现中我们需要访问B的具体成员因此需要包含头文件那么我们应该在类A的实现部分CPP文件包含类B的头文件而非声明部分(H文件)。 posted on 2013-07-21 16:05 zhanzc 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/jameszhan/p/declare.html
http://wiki.neutronadmin.com/news/196131/

相关文章:

  • 设计师平台网站企业网站建设公司网络服务
  • 网页制作与网站建设江西衡阳网站优化外包首选
  • 成绩查询网站开发黄浦企业网站制作
  • 杭州seo网站优化深圳公司网站改版通知
  • 企业网站建设的实践意义表格模板免费下载网站
  • 做彩票网站要什么接口福田蒙派克7座商务车报价
  • 公司做的网站计入什么wordpress 插件下载
  • 易语言怎么用网站做背景音乐免费空间如何放网站
  • 杭州专业做网站公司做互动电影的网站
  • h5高端网站开发品牌网站建设小7a蝌蚪
  • 实训网站建设的心得总结php做用户注册网站
  • 380元网站建设php做网站标题加链接
  • 网站备案 更换接入商十堰网站建设公司
  • 平凉有做企业网站的吗正邦做网站多少钱
  • 关于建设 网站的请示线上教育培训机构十大排名
  • 旅游网站建设策划方案大连在哪个省份哪个市
  • 网站开发前后端分离要多少钱wordpress手机下浮动
  • 塔里木油田公司档案馆网站建设研究企业网站开发研究现状
  • 会展相关app和网站的建设情况网页设计免费模板代码
  • 网站备案的意思网页设计图片怎么居中对齐
  • 大学生做爰网站qq互联 网站开发
  • 网站主页和子页怎么做郑州网站优化培训
  • dw中用php做网站电子商务网站建设jsp考卷
  • 永川网站开发小榄镇做网站公司
  • 织梦做的网站后台怎么进一套金蝶erp系统多少钱
  • 湛江建设培训学校网站专业手机网站公司哪家好
  • 邯郸市网站建设企业建设网站公司哪家好
  • 手机百度屏蔽我网站关键词网站上传的视频播放卡
  • asp.net做电商网站设计做视频解析网站
  • 求职招聘网站开发网站排名优化如何做