C语言中11就地初始化与列表初始化有何区别?

2026-04-19 01:470阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计835个文字,预计阅读时间需要4分钟。

C语言中11就地初始化与列表初始化有何区别?

1. 就地初始化 + 1.1 简介 + 在C++11之前,只能对结构体或类的静态常量成员进行就地初始化,其他的不行。例如:class C { private: static const int a=10; // yes int a=10; // no }; 在C++11中,结构体或类的数据成员在声明时可以进行就地初始化,只需在声明时提供初始值。

1.就地初始化

1.1简介

C语言中11就地初始化与列表初始化有何区别?

在C++11之前,只能对结构体或类的静态常量成员进行就地初始化,其他的不行。

class C { private: static const int a=10; //yes int a=10; //no }

在C++11中,结构体或类的数据成员在申明时可以直接赋予一个默认值,初始化的方式有两种,一是使用等号“=”,二是使用大括号列表初始化的方式。注意,使用参考如下代码:

class C { private: int a=7; //C++11 only int b{7}; //或int b={7}; C++11 only int c(7); //error };

注意,小括号初始化方式不能应用于就地初始化。

阅读全文

本文共计835个文字,预计阅读时间需要4分钟。

C语言中11就地初始化与列表初始化有何区别?

1. 就地初始化 + 1.1 简介 + 在C++11之前,只能对结构体或类的静态常量成员进行就地初始化,其他的不行。例如:class C { private: static const int a=10; // yes int a=10; // no }; 在C++11中,结构体或类的数据成员在声明时可以进行就地初始化,只需在声明时提供初始值。

1.就地初始化

1.1简介

C语言中11就地初始化与列表初始化有何区别?

在C++11之前,只能对结构体或类的静态常量成员进行就地初始化,其他的不行。

class C { private: static const int a=10; //yes int a=10; //no }

在C++11中,结构体或类的数据成员在申明时可以直接赋予一个默认值,初始化的方式有两种,一是使用等号“=”,二是使用大括号列表初始化的方式。注意,使用参考如下代码:

class C { private: int a=7; //C++11 only int b{7}; //或int b={7}; C++11 only int c(7); //error };

注意,小括号初始化方式不能应用于就地初始化。

阅读全文