• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++类的静态成员初始化详细讲解

C++类的静态成员初始化详细讲解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++类的初始化,c++静态类,c++类,c++ string类,c++类的使用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

记住:通常静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域操作符来指出静态成员所属的类.但如果静态成员是整型或是枚举型const,则可以在类声明中初始化!!!

private:
static const string name;
};
const string Account::name("Savings Account");
</div>
作为特例有序型的const 静态数据成员可以在类体中用一常量值初始化, 例如如果决定用一个字符数组而不是string 来存储账户的姓名那么我们可以用int型的const数据成员指定该数组的长度例如:

const char Account::name[nameSize]="Savings Account";
</div>
于这个特例有一些有趣的事情值得注意, 用常量值作初始化的有序类型的const 静态数据成员是一个常量表达式constant expression ,如果需要在类体中使用这个被命名的值那么类设计者可声明这样的静态数据成员, 例如因为const 静态数据成员nameSize是一个常量表达式所以类的设计者可以用它来指定数组数据成员name 的长度, 在类体内初始化一个const 静态数据成员时该成员必须仍然要被定义在类定义之外
但是因为这个静态数据成员的初始值是在类体中指定的, 所以在类定义之外的定义不能指定初始值, 因为name 是一个数组不是有序类型所以它不能在类体内被初始化, 任何试图这么做的行为都会导致编译时刻错误例如:

nameSize 没有被类名Account 限定修饰. 尽管nameSize是私有成员, 但是name的定义仍没有错, 怎么会这样? 如同类成员函数的定义可以引用类的私有成员一样静态数据成员的定义也可以引用静态数据成员, name 的定义是在它的类的域内当限定修饰名Account::name被看到之后它就可以引用Account 的私有数据成员。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于C++中构造函数初始化成员列表的总结
  • 关于C++类的成员初始化列表的相关问题
  • C++中COM组件初始化方法实例分析
  • C++类的静态成员初始化详细讲解

相关文章

  • 2017-05-28C++中sprintf()函数的使用详解
  • 2017-05-28C语言静态链表和动态链表
  • 2017-05-28从string类的实现看C++类的四大函数(面试常见)
  • 2017-05-28C++多线程编程简单实例
  • 2017-05-28c语言中十六进制转二进制显示的实现方法
  • 2017-05-28Reactor反应器的实现方法详解
  • 2017-05-28由static_cast和dynamic_cast到C++对象占用内存的全面分析
  • 2017-05-28浅谈c++的编译和运行
  • 2017-05-28学习 C++能带给我们什么
  • 2017-05-28深入探讨Linux静态库与动态库的详解(一看就懂)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++模板之特化与偏特化详解
    • C语言关键字auto与register的深入理解
    • 浅谈十进制小数和二进制小数之间的转换
    • Cocos2d-x UI开发之CCControlPotentiometer控件类使用实例
    • 数据结构之位图(bitmap)详解
    • C++回溯法实例分析
    • C语言实现txt数据读入内存/CPU缓存实例详解
    • C语言中改变目录的相关操作函数详解
    • C语言练习题:自由落体的小球简单实例
    • linux使用gcc编译c语言共享库步骤

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有