文档章节

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

follitude
 follitude
发布于 2017/05/21 20:37
字数 380
阅读 10
收藏 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
粉丝 4
博文 118
码字总数 4956
作品 0
浦东
Effective C++笔记简易总结以及程序演示

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

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

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

长征2号
2017/12/18
0
0
const static在c c++中的作用

一.C语言中的const const是C语言中保留的一个关键字,它用来限定一个变量是只读的,即不可变的。程序中使用const可以在一定程度上提高程序的健壮性,但是程序中使用过多的const,可能在对代码...

y_x
2011/11/17
0
0
C++ Primer Plus(四)——复合类型

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

吃一堑消化不良
2015/11/06
0
0
C++雾中风景6:拷贝构造函数与赋值函数

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

LeeHappen
01/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Win10内部更新:警告用户别用chrome和Firefox

简评:别和 Chrome 和 Firefox 约行不,我 Edge 明明更美、屁股更翘、更性感。。。 微软正在测试 Windows 10 的一个更新:警告用户不要安装 Chrome 和 Firefox。是测试人员发现的这个新警告,...

极光推送
28分钟前
2
0
Java并发编程高阶技术 高性能并发框架源码解析与实战

全网唯一深度解析并发编程框架disruptor底层源码课程,助你成为并发编程高手,拿下高薪 网盘地址下载

qq__2304636824
今天
1
0
day92-20180918-英语流利阅读-待学习

健身最大的敌人不是懒惰,而是逞强 Daniel 2018-09-19 1.今日导读 还记得 2008 年北京奥运会运动员刘翔的退赛风波吗?那天几乎所有中国人都将视线聚焦在了鸟巢体育馆 110 米栏的项目上,迫不...

飞鱼说编程
今天
8
0
70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
3
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部