c++11之二: 类成员变量初始化
在C++11中,
1、允许非静态成员变量的初始化有多种形式:初始化列表; 使用等号=或花括号{}进行就地的初始化。
可以为同一成员变量既声明就地的列表初始化,又在初始化列表中进行初始化,只不过初始化列表总是看起来“后作用于”非静态成员。
也就是说,初始化列表的效果总是优先于就地初始化的。
#include <iostream>
using namespace std;
class CBase{
public:
CBase(){cout<<"mem default="<<mem<<endl;}
CBase(int i):mem(i){cout<<"mem init="<<mem<<endl;}
int mem{};
}; int main(){
CBase objA;
CBase objB();
}
mem default=10
mem init=5
2、非常量的静态成员变量,与c++98保持一致。需要到头文件以外去定义它,这会保证编译时,类静态成员的定义最后只存在于一个目标文件中。
3、静态常量成员,除了const关键字外,还可以使用constexpr来对静态常量成员进行声明。
c++11之二: 类成员变量初始化的更多相关文章
- c++ 类成员变量初始化总结
		最近在学习c++,不同类型的c++成员变量在初始化的时候也有很有的区别,查了一些资料之后再此记录一下: #include<iostream> using namespace std; // ... 
- c++类成员变量初始化相关问题
		对于内置变量的自动初始化 代码1 1 #include<stdio.h> 2 #define CONST 100 3 int *p1; 4 int a[2]; 5 int b; 6 sta ... 
- 吐槽C++:C++ 类成员变量初始化 之  初始化带有参数的构造函数 的类成员变量。
		本来我想写这样的代码: class MatchManager{ public: MatchManager() { } class OnTimerRunFuncHelper{ public: OnTim ... 
- CB XE7 C11 64位编译器 成员变量初始化
		看到了C++11,看到了XE7的64位,想实现下面方便的类成员初始化,失望. 一.64位用法 clang3,64位编译器,不支持中文变量名,编写代码提示没有32位快,风格简单不用写单独的赋值语句函数, ... 
- Java类变量和成员变量初始化过程
		一.类的初始化 对于类的初始化:类的初始化一般只初始化一次,类的初始化主要是初始化静态成员变量. 类的编译决定了类的初始化过程. 编译器生成的class文件主要对定义在源文件中的类进行了如下的更改: ... 
- static 类成员变量 和 static const类成员变量
		1.使用static类的优点: (1)避免与其他类的成员或者全局变量冲突 (2)可以封装 (3)阅读性好 2.static 数据成员独立于该类的任意对象而存在 static数据成员的类型可以是该成员所 ... 
- Objective-C类成员变量深度剖析
		目录 Non Fragile ivars 为什么Non Fragile ivars很关键 如何寻址类成员变量 真正的“如何寻址类成员变量” Non Fragile ivars布局调整 为什么Objec ... 
- C++builder XE10 终于支持类内变量初始化了
		Win32终于支持类内变量初始化了,C++11 用bcc32C编译器 llvm CLang.还支持Unicode 中文汉字 变量名. 用经典的bcc32编译还是不支持! class TPerson ... 
- Java 类成员的初始化顺序
		Java 类成员的初始化顺序 前言:开发中碰到一个Java文件中有很多的成员变量,包括静态和非静态的,还有很多的初始化方法,很好奇这些成员的初始化顺序,在这里作个研究. 1 无继承情况下的Jav ... 
随机推荐
- SpringBoot Mybatis 入门
			Mybatis for Java API官方文档:http://www.mybatis.org/mybatis-3/zh/java-api.html Mybatis语法介绍 @Select 查询,所有 ... 
- 用PyDev、eclipse搭建Python开发环境
			一 Eclipse for python环境搭建 ①下载原生Eclipse,可以直接百度Eclipse,在百度软件中心下载 ②下载完后,打开软件,选择第一个安装即可 ③安装完成后,打开eclips ... 
- docker官方镜像库 搭建 jekins
			先去docker hub 镜像官网下载jenkins 镜像(https://hub.docker.com/_/jenkins/): 其实就是在docker 中执行命令:docker pull jenk ... 
- Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) C. Destroying Array
			C. Destroying Array time limit per test 1 second memory limit per test 256 megabytes input standard ... 
- 《Advanced Bash-scripting Guide》学习(十一):shift的用法
			本文所选的例子来自于<Advanced Bash-scripting Gudie>一书,译者 杨春敏 黄毅 Example 4-7 使用shift #!/bin/bash #使用shift ... 
- 一些蠕虫传播研究的文章——TODO
			www.arocmag.com/getarticle/?aid=4e02d91c19b0cced Internet 蠕虫防范技术研究http://www.arocmag.com/article/100 ... 
- deep learning   学习笔记(三) 线性回归学习速率优化寻找
			继续学习http://www.cnblogs.com/tornadomeet/archive/2013/03/15/2962116.html,上一节课学习速率是固定的,而这里我们的目的是找到一个比较好 ... 
- [转载]java操作word(一)
			一. 需求背景 在做项目的过程中,经常会遇到要把数据库数据导出到Word文件中的需求,因为很多情况下,我们需要将数据导出到WORD中进行打印.此需求可以通过用程序填充数据到word模板中来实现.所谓模 ... 
- MAC 下配置MQTT 服务器Mosquitto
			一.简单介绍 1.MQTT是IBM开发的一个即时通讯协议.MQTT是面向M2M和物联网的连接协议,采用轻量级发布和订阅消息传输机制. 2.Mosquitto是一款实现了 MQTT v3.1 ... 
- uva1583(暴力枚举或打表)
			紫书上的代码是打表. 我的做法是暴力枚举.注意,有多个变量时,选择枚举哪一个变量会影响到时间效率,值得考虑.由于各位数字之和最大就是五个9的和为45,所以就枚举各位数字之和比较快. #include& ... 
