C++类成员初始化
来源:互联网 发布:手机坏了怎么导出数据 编辑:程序博客网 时间:2024/05/09 20:45
经常碰到这类问题,以前也记录过,不过都留在原公司拿不出来,现在再记录一些基本的知识,以备不时之需。
c++各种不同类型成员初始化总结,可以初始化的情况有如下四个地方:
1、在类的定义中进行的,只有const 且 static 且 integral 的变量(还得看编译器是否支持,VC6.0就不支持)。
2、在类的构造函数初始化列表中, 包括const对象和Reference对象。
3、在类的定义之外初始化的,包括static变量。因为它是属于类的唯一变量。
4、普通的变量可以在构造函数的内部,通过赋值方式进行。当然这样效率不高。
//-----------------Static.h----------------------------
#pragma once
class Test
{
private :
int var1;
// int var11 = 11; 错误的初始化方法
const int var2 ;
// const int var22 = 22222; 错误的初始化方法
static int var3;
// static int var33 = 33333; 错误,只有静态常量成员才能直接赋值来初始化
// static const int var4 = 4444; //正确,静态常量成员可以直接初始化,因编译器不同吧,VC6.0就不行。
static const int var44;
int& var5; // 引用型成员变量
public:
Test(void);
};
//--------------------Static.cpp-----------------------------------
#include "Static.h"
// int Test::var1 = 1;; 错误 静态成员才能初始化
// int Test::var2 = 2; 错误
// int Test::var44 = 4; // 错误的方法,提示重定义
int Test::var3 = 3; //静态成员的 正确的初始化方法
const int Test::var44 = 44; // 正确的初始化方式
Test::Test(void)
: var1(1)
, var2(2) //正确的初始化方法 , var3(3) 不能在这里初始化
, var5(var1)
{
var1 = 1; //正确, 普通变量也可以在这里初始化
// var2 = 2; 错误,因为常量不能赋值,只能在 “constructor initializer (构造函数的初始化列表)” 那里初始化
var3 = 3; //这个赋值时正确的,不过因为所有对象一个静态成员,所以会影响到其他的,这不能叫做初始化了吧
// var5 = var1; // 错误,引用型成员变量只能在构造函数初始化列表中初始化
}
- [C++]C++语言类成员变量初始化总结
- C++_类_不同类型成员变量的初始化方式
- [C++]类成员冒号初始化以及构造函数内赋值
- 初始化C++类成员
- 静态初始化类成员
- 类成员初始化总结
- 类成员的初始化
- C++类成员初始化
- 类成员进行初始化
- 类成员初始化顺序
- 类成员初始化
- Java类成员初始化
- 类成员初始化
- C++类成员初始化
- 类成员初始化实例
- 初始化类成员变量
- C++类成员初始化
- 类成员初始化
- 显示器分辨率设置技巧集锦
- linux中断部分
- 每一位想有所成就的程序员都必须知道的15件事
- 统计x转化为2进制的位中为1的个数
- ★☆ Visual Studio 2008 每日小窍门 【持续发布ing~】 Tips:058
- C++类成员初始化
- VS编译问题(转载)
- Javascript和CSS浏览器兼容总结
- 年度回忆录(2011.01----2011.07)
- .net 分层架构
- 速度与激情的展示
- (2011.07.19) 顺序表.cpp -- 最基本的顺序表(经典顺序表)
- C# 获取当前月份的天数的方法
- c_lflag中ICANON的作用