发表日期: 2022-07-27 11:57:15 浏览次数:21
专业网站建设-网站设计-网站制作与网站开发-高端品牌企业宣传策划-灌南上往建站
::<静态成员函数名>(<参数表>);
C++各种不同类型成员根据是否static、时候const类型的初始化方法不尽相同,java的语法就没有这么复杂,怪的得那么多人都跑去学Java了。以前面试时被人问到这个问题回答不出来,写代码时也经常搞乱了,这里翻了下书,总结一下。
有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:
a. 常量型成员变量
b. 引用型成员变量
c. 静态成员变量
初始化
var3 =44444; //这个赋值是正确的,不过因为所有对象一个静态成员,所以会影响到其他的,这不能叫做初始化了吧
}
Test::~Test(void){}
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:
a. 常量型成员变量
b. 引用型成员变量
c. 静态成员变量
d. 整型静态常量成员变量
e. 非整型静态常量成员变量
对于常量型成员变量和引用型成员变量的初始化,必须通过构造函数初始化列表的方式进行。在构造函数体内给常量型成员变量和引用型成员变量赋值的方式是行不通的。
静态成员变量的初始化也颇有点特别。
参考下面的代码以及其中注释:
// Initialization of Special Data Member
#include <iostream>
using namespace std;
class BClass
{
public:
BClass() : i(1),ci(2), ri(i) // 对于常量型成员变量和引用型成员变量,必须通过
{ // 参数化列表的方式进行初始化。在构造函数体内进行赋值的方式,是行不通的。
}
voidprint_values()
{
cout<< "i =\t" << i << endl;
cout<< "ci =\t" << ci << endl;
cout<< "ri =\t" << ri << endl;
cout<< "si =\t" << si << endl;
cout<< "csi =\t" << csi << endl;
cout<< "csi2 =\t" << csi2 << endl;
cout<< "csd =\t" << csd << endl;
}
private:
inti; // 普通成员变量
constint ci; // 常量成员变量
int&ri; // 引用成员变量
staticint si; // 静态成员变量
//staticint si2 = 100; // error: 只有静态常量成员变量,才可以这样初始化
staticconst int csi; // 静态常量成员变量
staticconst int csi2 = 100; // 静态常量成员变量的初始化(Integral type) (1)
staticconst double csd; // 静态常量成员变量(non-Integral type)
//staticconst double csd2 = 99.9; // error: 只有静态常量整型数据成员才可以在类中初始化
};
// 静态成员变量的初始化(Integral type)
int BClass::si = 0;
// 静态常量成员变量的初始化(Integral type)
const int BClass::csi = 1;
// 静态常量成员变量的初始化(non
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 昌平殡葬| 朝阳殡葬|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878