前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C++11类属性成员的初始化

C++11类属性成员的初始化

作者头像
zy010101
发布2020-03-31 15:49:23
发布2020-03-31 15:49:23
97400
代码可运行
举报
文章被收录于专栏:程序员程序员
运行总次数:0
代码可运行

在C++11中,大多数的基础数据类型都可以直接初始化,可以不通过构造函数来初始化。还有一些仍旧是类外初始化。由于可能存在对C++11支持的程度不同,以及编译器厂商是否对C++进行了扩展。下面是我的测试平台:

测试环境

  • Windows 10的64位操作系统
  • Microsoft Visual Studio Community 2019

测试代码

代码语言:javascript
代码运行次数:0
运行
复制
#include <iostream>

using namespace std;

class MyClass
{
public:
	static const int a = 3;		
	const double b = 3.14;
	//为了保持静态属性成员是属于整个类的,C++11的做法和以前一样,依旧在类外定义并初始化
	static int c;	//声明c	
	double d = 100.001;

	char str[33] = "Hello World!";
	int num[10] = { 0 };

private:

};
int MyClass::c = 10;//在这里定义并初始化

int main()
{
	MyClass C;
	cout << C.a << endl;
	cout << C.b << endl;
	cout << C.c << endl;
	cout << C.d << endl;
	cout << C.str << endl;
	cout << C.num[3] << endl;

	return 0;
}

测试结果

不仅能通过编译,而且输出结果也没有任何问题。这样的初始化方式写起来也非常顺畅,比旧标准好得多。

学习新的标准是非常有用的,这样最重要的是能让你避免对新的代码产生一些误判。尤其是当新的标准所支持的操作,在旧标准中并不支持的时候,你就很可能发生误判。

在Microsoft Visual Studio Community 2019中,其实已经支持了C++14,C++17以及C++最新的草案标准

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 测试环境
  • 测试代码
  • 测试结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档