C++ 17引入了许多声明变量的新方法。较早的分配和声明是使用“ =”完成的
例子:
int a = 5;
但是现在在C++ 17中引入了另外两种方式。他们是:
- 构造函数初始化:这样,变量的值包含在括号(())中。这样,可以通过以下两种方式传递值。
#include
using namespace std; // Driver Code int main() { // Declaring the variable in parentheses // Method 1 int a(5); cout << "a = " << a; // Declaring the variable in parentheses // Method 2 int b = (10); cout << endl << "b = " << b; return 0; } 输出:
a = 5 b = 10
解释
在C++ 17中,也可以通过括号提供值来声明变量。构造函数初始化与旧的常规初始化方法之间的区别在于,无论大小或符号是多少,它将始终返回括号中的最后一个值。例如,
a=(2, 21, -50, 1)
存储在中的值将为1。
- 统一初始化:这样,变量的值用大括号({})代替,而不用括号括起来。这样,可以通过以下两种方式传递值。
#include
using namespace std; int main() { // Declaring the variable in curly braces // Method 1 int a{ 3 }; cout << "a = " << a; // Declaring the variable in curly braces // Method 2 int b = { 7 }; cout << endl << "b = " << b; return 0; } 输出:
a = 3 b = 7
与构造函数初始化不同,此分配方法只能在括号中使用一个值。提供多个值将返回编译错误。
例如,
int b={7, 12};
输出
prog.cpp: In function 'int main()': prog.cpp:9:12: error: scalar object 'b' requires one element in initializer int b={7, 12}; ^
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。