文档章节

C++成员变量初始化赋值

follitude
 follitude
发布于 2017/05/21 20:37
字数 380
阅读 11
收藏 0

摘要: C++成员变量初始化赋值你都清楚吗?还有好多坑,好多细节也不知道

引用的初始化和const常量 一样只能在构造函数的初始化列表里初始。

    至于为什么成员变量中要用到引用,这个主要是该成员变量是另一个类的对象,但是该类却禁止copy【怎么禁止拷贝构造函数?其实很简单,声明为Private即可】。

    扯远了。。。

    下面是对于成员变量初始化的总结,在g++下测试过:

#include <iostream>

using namespace std;

class TestVar{
public:
	TestVar():b(2), e(a){
		a = 1;	
		cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<h<<endl;
	}
private:
	//int a = 0;//error: ISO C++ forbids initialization of member ‘a’
	int a;//初始化可以在构造函数里面,也可以在初始化列表
	//const int b = 0;//error: ISO C++ forbids initialization of member ‘a’
	const int b;//常量的正确初始化应该使用[构造函数的初始化列表]
	int &e;//引用类型变量,和常量一样只能在[构造函数的初始化列表],参数是同类型变量
	
	//static int c = 0;//ISO C++ forbids in-class initialization of non-const static member ‘c’
	static int c;
	static const int d = 4;//注意只有整型数据才行[int.., char]
	static const char f = 'a';//可以,char也是整型数据
	static const double h = 9.9;//书上说不行,但是在g++下是可以的,根编译器有关吧
	
};

int TestVar::c = 3;//静态成员的正确初始化方法


int main(){
	TestVar t;
	return 0;
}

本文转载自:https://my.oschina.net/chengshuguang/blog/210666

共有 人打赏支持
follitude
粉丝 6
博文 118
码字总数 4956
作品 0
浦东
私信 提问
Effective C++笔记简易总结以及程序演示

4、确定对象被使用前已被初始化 在使用变量时不进行初始化是不好的行为,在程序中有可能读入一个未初始化的值就可能导致程序崩溃。 对于内置类型,保证在使用对象之前进行初始化: 对于结构体...

oldpan
2017/10/11
0
0
我所知道的一个简单类

我所知道的一个简单类   大家都说C++难学,我也正在学习,之所以难是可能因为没有了解C++中的一些很基础的东西,有点似懂非懂的感觉,而没有真正了解C++的运行机制,我一直在学习基础,这篇...

长征2号
2017/12/18
0
0
C++雾中风景6:拷贝构造函数与赋值函数

在进行C++类编写的过程之中,通常会涉及到类的拷贝构造函数与类的赋值函数。初涉类编写的代码,对于两类函数的用法一直是挺让人困惑的内容。这篇文章我们会详细来梳理拷贝构造函数与赋值函数...

LeeHappen
01/17
0
0
C++ Primer Plus(四)——复合类型

只能在定义数组时才能初始化,不能将一个数组赋值给另一个数组,但可以使用下标分别赋值给数组元素,但可以将一个string对象赋值给另一个string对象 如果只对数组的一部分初始化,其他元素自...

吃一堑消化不良
2015/11/06
0
0
const、static关键字

最近一直在迷惑着这两个关键字,感觉大脑里一片糊涂,特此整理一下: 一、const 1、数据常量,不能修改,必须初始化; 1)非类的数据成员 a、指向const对象的指针(remember) b、const指针(...

EillenMe
2013/04/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用 React 和 Vue 创建相同的应用,他们有什么差异?

在工作中应用 Vue 之后,我对它有了相当深刻的理解。 不过,俗话说「外国的月亮比较圆」,我好奇「外国的」 React 是怎么样的。 我阅读了 React 文档并观看了一些教程视频,虽然它们很棒,但...

阿K1225
9分钟前
0
0
如何使用Kubernetes的configmap通过环境变量注入到pod里

在Kubernetes官网里,有这样一篇文章,提到了Kubernetes里的一个最佳实践就是把应用代码同配置信息分开,一种方式就是使用Kubernetes 1.2里引入的configmap概念。 https://kubernetes.io/bl...

JerryWang_SAP
25分钟前
0
0
2天闭门培训|以太坊智能合约从入门到实战(北京)

2天培训 16个课时 探寻技术原理,精通以太坊智能合约开发 以太坊智能合约是现在应用的最广泛的区块链应用开发方式,HiBlock区块链社区针对以太坊智能合约的学习特别推出2天闭门研修班,通过2...

HiBlock
28分钟前
0
0
限定某个目录禁止解析php,限制user_agent,php相关配置

11月20日任务 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置 1.限定某个目录禁止解析php 核心配置文件内容 <Directory /data/wwwroot/www.123.com/upload> p...

hhpuppy
38分钟前
2
0
Spring的好文章

孤傲苍狼 https://www.cnblogs.com/xdp-gacl/p/4249939.html 跟我学spring http://jinnianshilongnian.iteye.com/blog/1413846 SpringIoc 和Spring Aop 代理模式: 静态代理 动态代理 cglib代......

wangwei2134
50分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部