`
qimo601
  • 浏览: 3445859 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

only static const integral data members can be initialized within a class

阅读更多

翻译一下:只有静态整型常量数据成员能在类中初始化

那么哪些数据属于整型呢,下面的都是

char

short

int

long

long long

所以只有以上这些类型的数据能在类中初始化,也就是你可以这样写

1 class Test
2 {
3     static const int i = 100 ;
4 } ;
5 

 

但不能这样写,否则就会出现如标题所示的编译错误。

 

1 class Test
2 {
3     static const float i = 100.0f ;
4 } ;
5 

因为float不属于integral type

 

另外要注意的是,bool也可以在类中初始化,像下面这样

1 class Test
2 {
3     static const bool flag = true ;
4 } ;
5 

但是我却没有找到bool是integral type的说法,bool的值有两种,true和false,对应二进制的0和1,用一个bit就可以表示了,但是C++中长度最短的类型是char,所以只能用char表示,而char属于整型,是不是这样就把bool也归为整型了呢?猜测而已。

 

另外,C++标准对于哪些类型能在类中初始化有详细的描述,如下:

If a static data member is of const integral or const enumeration type, its declaration in the class definition can specify a constant-initializer which
shall be an integral constant expression

所以不只整型常量可以,枚举常量也可以在类中初始化,像下面这样

复制代码
 1 enum COLOR
 2 {
 3     RED, 
 4     GREEN,
 5     BLUE
 6 } ;
 7 
 8 class Test
 9 {
10     static const COLOR color = GREEN ;
11 } ;
复制代码

 

 

作者:zdd
出处:http://www.cnblogs.com/graphics/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
分享到:
评论

相关推荐

    类的static,const,static const,const static成员的初始化

    类的static、const、static const、const static成员的初始化 在 C++ 编程中,static、const、static const 和 const static 是四个常见的概念,但它们的初始化方式却容易弄混淆。下面我们将对这四种成员变量的初始...

    static和const用法详解

    Static和Const用的详解 static和const是C语言中两个非常重要的关键字,它们在程序设计中扮演着不同的角色。本文将详细介绍static和const的用法和特性。 static static是C语言中的一个存储类型限定符,主要用来...

    const与static用法完整总结

    ### const与static用法完整总结 #### 一、const关键字详解 **1. 常量定义** 在C++中,`const`关键字用于声明一个常量或对象的一部分为不可变。例如: ```cpp const int max = 100; ``` 此处`max`被声明为一个...

    const data彻底研究

    ### const data彻底研究:深入解析C++中的常量机制 #### 摘要与引言 在C++编程语言中,`const`关键字扮演着至关重要的角色,它用于声明不可修改的数据成员或变量,从而提高了代码的安全性和效率。本文旨在通过对`...

    浅谈C++中的几个关键字static,const,inline.doc

    "C++中的static、const、inline关键字详解" C++ 中的 static 关键字是一种非常重要的修饰符,它可以控制变量的存储方式和可见性。静态变量的两大作用是控制存储方式和控制可见性。控制存储方式是指将变量存储在程序...

    Google C++ Style Guide(Google C++编程规范)高清PDF

    We can declare static data members of type Foo. This is because static data members are defined outside the class definition. On the other hand, you must include the header file for Foo if your class...

    const,extern,static,volatile的使用

    ### const、extern、static、volatile 的使用详解 #### 一、const 的使用 **1. 为什么使用 const** `const` 关键字在 C 和 C++ 编程语言中非常常见,它用来声明一个常量或者指定某个变量的某个方面为不可变。使用...

    static,const,volatile用法

    ### static、const、volatile用法解析 在编程领域中,`static`、`const`、`volatile` 这三个关键字非常常见且重要。它们分别用于控制变量的作用域、可变性和不可预测性,是理解程序行为的基础之一。下面将详细介绍...

    const extern static volatile 小结

    ### const extern static volatile 小结 #### 一、Const(常量) `const` 关键字在 C/C++ 语言中用于定义常量,即其值在程序运行期间不可更改的变量。`const` 可以与多种数据类型结合使用,例如 `const int x = 10...

    extern,static以及const修饰变量的不同用法

    ### extern、static以及const修饰变量的不同用法 #### 一、概述 在C语言中,`extern`、`static` 和 `const` 是三个非常重要的关键字,它们在定义变量时起到不同的作用。本文将深入探讨这三个关键字分别在定义全局...

    IOS详细瀑布流

    static const NSInteger XMGDefaultColumnCount = 3; /** 每一列之间的间距 */ static const CGFloat XMGDefaultColumnMargin = 10; /** 每一行之间的间距 */ static const CGFloat XMGDefaultRowMargin = 10; /** ...

    c和c++中static,const的一些见解

    在C和C++编程语言中,`static`和`const`是两个非常重要的关键字,它们在不同的上下文中有各自的用途和含义。这篇文章将深入探讨这两个关键字,并分享一些专家的见解。 首先,`static`关键字在C和C++中的主要作用有...

    const用法 const int *a; int * const a;

    在C++编程语言中,`const`关键字用于声明常量,它可以用来修饰变量、指针、引用等,以限制它们的可变性。本文将详细解释`const`的各种用法。 1. **常量变量**: - `const int a;` 或 `int const a;`:声明了一个...

    易语言常量支持库const.fne const_static.lib v1.6#8版(静态版)

    "易语言常量支持库const.fne const_static.lib v1.6#8版(静态版)"是专为易语言设计的一个扩展库,它提供了丰富的常量支持,增强易语言在编写程序时的表达能力和效率。 常量在编程中扮演着重要的角色,它们是不可...

    const int *a int * const a区别实例

    const 关键字在 C++ 中的应用和区别 const 关键字是 C++ 中一个非常重要的关键字,它可以用来修饰变量、指针、函数参数等,使其具有只读属性。本文将对 const 关键字的应用和区别进行详细的总结和分析。 const ...

    const成员函数、初始化列表、static成员1

    C++ 编程语言 - const 成员函数、初始化列表、static 成员变量 C++ 编程语言中,const 成员函数、初始化列表、static 成员变量是三个重要的概念,它们在编程中发挥着重要的作用。 const 成员函数 在 C++ 中,...

    C++类中的static和const用法实例教程

    static和const是C++程序设计中非常重要的概念,本文实例列举了C++类中的static和const的规则和用法。供大家参考借鉴。具体说明如下: 首先以代码用来举例说明。示例代码如下: class A { public: A():m(10) //...

    volatile关键字 Const关键字 static关键字 mutable 关键字

    在C/C++编程语言中,`volatile`, `const`, `static` 和 `mutable` 是四个非常重要的关键字,它们各自有着独特的用途和含义。下面将详细解释这些关键字的作用以及它们在程序设计中的应用。 1. `volatile` 关键字 `...

    constt文档

    在C++编程语言中,`const`关键字是一个非常重要的概念,它用于声明常量、防止数据被意外修改,以及实现更安全的代码设计。下面我们将详细探讨`const`的几种用法: 1. **定义常量变量**: `const`关键字可以用来...

    C语言中关键字const、static、volatile、extern、auto、register的用法分析.doc

    C语言中关键字const、static、volatile、extern、auto、register的用法分析 本文将对C语言中的六个关键字:const、static、volatile、extern、auto、register进行详细的分析和解释。 一、const关键字 Const关键字...

Global site tag (gtag.js) - Google Analytics