C++中怎么初始化类静态成员

这篇文章将为大家详细讲解有关C++中怎么初始化类静态成员,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

10余年的彭州网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整彭州建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“彭州网站设计”,“彭州网站推广”以来,每个客户项目都认真落实执行。

C++类静态成员初始化相关实现代码介绍:

class mytestclass   {   public:   const static int i = 5;   };   int main()   {   std::cout<<mytestclass::i<<std::endl;   return 0;   }

结果没有问题,输出为5(编译器为vc7.1),但是在下面这个例子中:

int regi()   {   return 5;   }   class mytestclass   {   public:   const static int i = regi();   };   int main()   {   std::cout<<mytestclass::i<<std::endl;   return 0;   }

输出却不正确,输出为0(编译链接都没有问题)。。。,似乎代码并没有执行regi函数?

在C++类静态成员初始化中初始化变量分为"动态初始化"和"静态初始化","动态初始化"为利用函数进行初始化,"静态初始化"为常量表达式进行初始化. C++标准对于类中的常量表达式的"动态初始化"似乎并未做说明,所以是否支持类中常数静态变量的动态初始化也就取决与编译器的设计了. 但是无论如何vc7.1的编译结果都是不对的,它并没有给出错误,但是结果与逻辑不向符合,这应该是vc7.1的一个bug.(在vs2005中的C++编译器已经修正了这个bug,给出了一个编译Error)

关于C++中怎么初始化类静态成员就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

网页题目:C++中怎么初始化类静态成员
网站链接:https://www.cdcxhl.com/article42/gppghc.html

成都网站建设公司_创新互联,为您提供动态网站网站内链企业网站制作关键词优化定制开发ChatGPT

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设