为什么我在C++中的头文件中,类A下声明一下变量extern int test;会提示我A::test非法的存储类?? 请教!

为什么我在C++中的头文件中,类A下声明一下变量extern int test;会提示我A::test非法的存储类?? 请教!,第1张

我刚才做了一个实验:<br>//a.cpp <br>#include <string><br><br>std::string i<br><br>//b.cpp<br>#include <iostream><br>#include <string><br><br>extern std::string i<br><br>int main ()<br>{<br>std::cout <<i <<std::endl<br>}<br><br>运行结果为:<br><br>(上面是一空行:由于末尾用了endl)<br><br>如果没有a.cpp这个文件,运行出错<br>这是一对实验(有没有a.cpp文件)<br><br>可得出这样的结论:<br>a.cpp中std::string i是定义(本来就是)<br>b.cpp中extern std::string i则是声明(你的问题)<br><br>先别急,这只是实验结果。我们还需要理论依据,那么下面就试着解释一下:<br><br>下面是另一个例子(也是第二个实验)<br>你应该知道内置类型(int等)如果作为全局变量时,定义的同时也就初始化了(一个内置类型有其对应的默认值;如果你将自定义类型也看成内置类型,那么就等于说,一个自定义类型有其对应的默认值(由默认构造函数完成))。如<br>//c.cpp<br>int i<br><br>//d.cpp<br>#include <iostream><br><br>extern int i<br><br>int main ()<br>{<br>std::cout <<i <<std::endl<br>}<br><br>那么在这里int i就是定义(并且初始化了i,初始值为0)<br>因而输出结果为<br>0<br>//这个实验的运行结果符合理论依据。<br>(我使用的编译器是visual studio 2008)<br><br><br>从这两个实验来看:(将两个“默认”等同起来)<br>int i<br>std::string i<br>都可以作为初始化i的定义性语句。<br>那么<br>extern int i<br>extern std::string i<br>也具有定义行为(这个很明显与extern的用法相悖)<br><br>在以上两个试验中:int 与 string 有“区别”吗?所有的代码都一样只不过把std::string 换成了 int而已!如果你能解释int的情况,那么我想std::string问题也就迎刃而解了!<br><br>于是我个人总结出一个结论:<br>    不论是内置类型还是自定义类型,前面有extern关键字,如果没有显式地初始化参数(即就是自定义类型的默认构造函数被extern屏蔽了,不起初始化的作用),那么就按声明对待。<br> 麻烦采纳·····

错的地方多了,改成下面的:

$main = "网上大名:<a href='mailto:".$email."'>".$nickname."</a>:(".$t.")<br>留言: ".$note."<br><hr>"


欢迎分享,转载请注明来源:优选云

原文地址:https://54852.com/hy/744415.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-03
下一篇2023-06-03

随机推荐

  • 雅诗兰黛的精华怎么样值不值得买

    雅诗兰黛的精华可加强肌肤自然修护能力,是值得购买的。雅诗兰黛精华可持续修复肌肤日积月累因紫外线、环境污染、生活压力等因素造成的各项问题,持续使用会预防衰老,预防细纹和皱纹。雅诗兰黛精华首创细胞DNA修护概念,与肌肤自身修护机制和生理代谢周期

    2023-12-14
    31700
  • 欧舒丹护手霜能用多久 欧舒丹护手霜孕妇能用吗

    秋冬季节皮肤很容易干燥,欧舒丹护手霜是法国的天然植物护肤品牌,品质有保障,在网上的销量和评价一直都很高,很多人都入手了。欧舒丹护手霜能用多久欧舒丹护手霜保质期欧舒丹所有护手霜的保质期都是3年,即从生产日期开始算起,过了3年之后就不能

    2023-12-14
    30000
  • 200分推荐几款水。洗面奶。之类的护肤东西

    楼主:暂没用过什么护肤品,额头上有肉色小突起,麻麻的一堆小痘,那不是青春痘啦稍后我会告诉你我也喜欢去淘宝,所以我推荐你的都是淘宝能买到的因为你没用过洁面产品,所以你的皮肤的角质层细胞的皮脂膜,应该处于不错的状态(皮肤的PH值是55,只有这个

    2023-12-14
    22400
  • 高姿和韩束究竟哪一个更好呢韩束哪个系列销量最好

    高姿和韩束哪个好高姿和韩束其实两者都是很不错的,要说哪一个好一点,韩束要稍微好一点,不过高姿更加便宜实惠韩束明星产品韩束哪个系列销量最好——BB霜用实力说话从官方旗舰店上得到的数据可以看出,韩束BB霜的总销量截止到目前有23万件,远比其他产

    2023-12-14
    40800
  • 如何查化妆品的批号

    可以参考下面方法查询:1、首先打开百度搜索“国家食品药品监督管理总局官网”点击进入官网。2、点击右上角的“化妆品”栏目。3、选择左侧的“国产化妆品”或者“进口化妆品”点击进入。4、在查询栏输入要查询的化妆品名,点击查询。5、在查询出的列表中

    2023-12-14
    22600
  • 国妆特字号查询系统

    在国内,有特殊性功能的化妆品都需要通过卫生部门的批准字号。2010年,卫生部合并为“国家食品药品监督管理局”后,所有的批文都变为了“国妆特字”。以前由卫生部批准的是“卫妆特字”。其实两者都是一样的性质。这个特殊批文对于产品相当于“身份证”这

    2023-12-14
    18400
  • 如何查化妆品是否在药监局备案了

    现在市面上化妆品牌子非常的多,也非常的杂。在网上购买的化妆品有些打着进口的旗号实则是三无产品。对于这样的化妆品我们是可以预先查它们是否在药监局备案,如何查询呢?一起了解下吧。 搜索中国食品药品监督管理局。打开化妆品选项。

    2023-12-14
    18400
  • 2,3-DPG和2,3-BPG分别代表什么化学物质

    2,3-DPG与2,3-BPG指同一物质2,3-二磷酸甘油酸,2,3-DPG是英文2,3-diphosphoglycerate的缩写,而2,3-BPG是英文2,3-bisphosphoglycerate的缩写1、科颜氏集焕白均衡亮肤淡斑精华

    2023-12-13
    21200
  • 韩国化妆品有名的有哪些

    1、梦想时间Dreamtimes的产品秉承了韩国化妆品实惠好用的精髓,也是很多韩国明星在节目中公开支持的经典韩国化妆品品牌。其产品专注于解决年轻人的皮肤问题。自进入中国市场以来,受到了牛二、大s等美妆大师的青睐,近年来凭借高性价比和卓越功效

    2023-12-13
    18400

发表评论

登录后才能评论
保存