翻译一下:只有静态整型常量数据成员能在类中初始化
那么哪些数据属于整型呢,下面的都是
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 } ;
分享到:
相关推荐
类的static、const、static const、const static成员的初始化 在 C++ 编程中,static、const、static const 和 const static 是四个常见的概念,但它们的初始化方式却容易弄混淆。下面我们将对这四种成员变量的初始...
Static和Const用的详解 static和const是C语言中两个非常重要的关键字,它们在程序设计中扮演着不同的角色。本文将详细介绍static和const的用法和特性。 static static是C语言中的一个存储类型限定符,主要用来...
### const与static用法完整总结 #### 一、const关键字详解 **1. 常量定义** 在C++中,`const`关键字用于声明一个常量或对象的一部分为不可变。例如: ```cpp const int max = 100; ``` 此处`max`被声明为一个...
### const data彻底研究:深入解析C++中的常量机制 #### 摘要与引言 在C++编程语言中,`const`关键字扮演着至关重要的角色,它用于声明不可修改的数据成员或变量,从而提高了代码的安全性和效率。本文旨在通过对`...
"C++中的static、const、inline关键字详解" C++ 中的 static 关键字是一种非常重要的修饰符,它可以控制变量的存储方式和可见性。静态变量的两大作用是控制存储方式和控制可见性。控制存储方式是指将变量存储在程序...
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 的使用 **1. 为什么使用 const** `const` 关键字在 C 和 C++ 编程语言中非常常见,它用来声明一个常量或者指定某个变量的某个方面为不可变。使用...
### static、const、volatile用法解析 在编程领域中,`static`、`const`、`volatile` 这三个关键字非常常见且重要。它们分别用于控制变量的作用域、可变性和不可预测性,是理解程序行为的基础之一。下面将详细介绍...
### const extern static volatile 小结 #### 一、Const(常量) `const` 关键字在 C/C++ 语言中用于定义常量,即其值在程序运行期间不可更改的变量。`const` 可以与多种数据类型结合使用,例如 `const int x = 10...
### extern、static以及const修饰变量的不同用法 #### 一、概述 在C语言中,`extern`、`static` 和 `const` 是三个非常重要的关键字,它们在定义变量时起到不同的作用。本文将深入探讨这三个关键字分别在定义全局...
static const NSInteger XMGDefaultColumnCount = 3; /** 每一列之间的间距 */ static const CGFloat XMGDefaultColumnMargin = 10; /** 每一行之间的间距 */ static const CGFloat XMGDefaultRowMargin = 10; /** ...
在C和C++编程语言中,`static`和`const`是两个非常重要的关键字,它们在不同的上下文中有各自的用途和含义。这篇文章将深入探讨这两个关键字,并分享一些专家的见解。 首先,`static`关键字在C和C++中的主要作用有...
在C++编程语言中,`const`关键字用于声明常量,它可以用来修饰变量、指针、引用等,以限制它们的可变性。本文将详细解释`const`的各种用法。 1. **常量变量**: - `const int a;` 或 `int const a;`:声明了一个...
"易语言常量支持库const.fne const_static.lib v1.6#8版(静态版)"是专为易语言设计的一个扩展库,它提供了丰富的常量支持,增强易语言在编写程序时的表达能力和效率。 常量在编程中扮演着重要的角色,它们是不可...
const 关键字在 C++ 中的应用和区别 const 关键字是 C++ 中一个非常重要的关键字,它可以用来修饰变量、指针、函数参数等,使其具有只读属性。本文将对 const 关键字的应用和区别进行详细的总结和分析。 const ...
C++ 编程语言 - const 成员函数、初始化列表、static 成员变量 C++ 编程语言中,const 成员函数、初始化列表、static 成员变量是三个重要的概念,它们在编程中发挥着重要的作用。 const 成员函数 在 C++ 中,...
static和const是C++程序设计中非常重要的概念,本文实例列举了C++类中的static和const的规则和用法。供大家参考借鉴。具体说明如下: 首先以代码用来举例说明。示例代码如下: class A { public: A():m(10) //...
在C/C++编程语言中,`volatile`, `const`, `static` 和 `mutable` 是四个非常重要的关键字,它们各自有着独特的用途和含义。下面将详细解释这些关键字的作用以及它们在程序设计中的应用。 1. `volatile` 关键字 `...
在C++编程语言中,`const`关键字是一个非常重要的概念,它用于声明常量、防止数据被意外修改,以及实现更安全的代码设计。下面我们将详细探讨`const`的几种用法: 1. **定义常量变量**: `const`关键字可以用来...
C语言中关键字const、static、volatile、extern、auto、register的用法分析 本文将对C语言中的六个关键字:const、static、volatile、extern、auto、register进行详细的分析和解释。 一、const关键字 Const关键字...