gpt4 book ai didi

c++ - ios_base 和静态成员

转载 作者:行者123 更新时间:2023-11-30 02:09:07 25 4
gpt4 key购买 nike

ios_base 类中的静态常量在创建时进行初始化,这对于常量来说是有意义的。非常量静态成员变量是否可以用相同的方式初始化,或者这个概念是否只允许常量静态成员使用?

对于带有 gnu 编译器的非常量静态成员,必须始终使用与标题中的减速分开的定义/分配空间?以这种方式初始化常量静态成员是否合适?

最佳答案

只能为当前C++标准中的static const(整型数据类型,如int、char、double等)成员创建和初始化类成员。对于非静态成员,这是不可能的。但是,在 C++0x 中引入了该功能。

编辑:对于非常量静态成员,您可以进行初始化,但您必须在 .cpp 文件中进行同样的操作(对于非模板类)。例如

struct A
{
static const int i = 0; // ok
static int j; // can declare in .cpp file as below
int k = 2; // error, but valid in C++0x
const int l = 3; // error, valid in C++0x
static const int m[2] = {1,2}; // error, should be an integral type
static const string n = "hi"; // error, should be an integral type
};
int A::j = 1 // declare in class body, and define outside

关于c++ - ios_base 和静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5762642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com