C++/CLI静态构造函数实例分析(四)

 2024-01-27 05:02:07  阅读 0

C++/CLI静态构造函数实例分析(四)

2006年11月21日 16:18 天极夜空

对 Point 的其他修改

读写属性在标签 8 中定义并在标签 12 中使用。

所有三个构造函数(标记为 9、10 和 11)都会创建新的 Point 实例,因此它们需要为 ID 分配一个唯一的值,而其他成员函数只会对现有实例进行操作,而不会修改它们。 任何 ID 值。 初始化仅在创建对象时发生,因此需要新的ID,而赋值发生在对象创建后,因此不需要新的ID。

在标签12中,返回一个int,这正是ID所需的类型。 同样,该函数可以返回一个值,从而保证哈希值的唯一性。 (当然,如果ID是long或者long类型的话,需要还原为int类型。)

至于是否包含ID前缀,都在标签13中完成。

场地

在非局部类中,如果使用标识符声明字段,则它通常是构造函数初始值设定项、构造函数主体或静态构造函数中的左值,在其他情况下它是右值。 。 (特别是,静态字段只能由静态构造函数修改,实例字段只能由实例构造函数修改。)除非第一次使用该类,或者创建实例时,该字段可以被视为只读类型。 例如,某些工程数据类型具有静态系统表。 每次运行程序时,都必须从文件中读取其值,但此后,它将被视为只读。 式中,例3就是这样的情况。

静态函数意思是静态吗_静态函数的定义_静态函数是什么意思

示例3:

使用 ;

参考类

/*1*/ 数组^ ;

/*2*/ ()

整数;

//找出需要多大的数组

// = ...

= gcnew 数组();

静态函数意思是静态吗_静态函数的定义_静态函数是什么意思

for (int i = 0; i < ; ++i)

// [i] = ...

:

/*3*/ 系数[int] {

get(int 索引) { [索引]; }

};

int main()

d;

尝试 {

静态函数是什么意思_静态函数意思是静态吗_静态函数的定义

/*4*/ d = ::系数[2];

抓住 (tion^ ex)

//处理异常

保存系数的静态数组在标签 1 中声明。在静态构造函数中,打开包含系数的文件。 确定数字后,分配相应大小的数组,并从文件中读取值并保存在数组中。 。

数组可以隐藏在只读命名索引属性后面,而不是让数组成为变量或让程序员直接使用下标访问数组。 (方括号表示索引属性。)在本例中,它是一个以逗号分隔的索引列表,这意味着该类可以使用下标进行索引,如标签 4 所示。(与多维数组下标类似,索引访问为索引属性在 [] 中使用逗号分隔的索引列表。)

默认情况下,C++/CLI 还允许索引属性名称作为关键字,即可以直接对实例名称进行索引,而无需使用任何成员名称。 但是,这仅适用于实例索引属性,因此不能在此处使用。 同样,该属性名为 Coeff。

字段不是编译时命名常量,因此它不需要包含常量的初始化过程,并且不限于具有标量。

如果一个类包含任何带有初始化过程的字段,它们将在执行静态构造函数之前按照声明的顺序进行初始化。

我们可以将 Point 类标记为吗? 毕竟只会在构造函数中修改。 答案是否定的,因为它是静态成员,只能由静态构造函数更新。

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码