Loading docs/lang/class.md +3 −5 Original line number Diff line number Diff line Loading @@ -26,9 +26,7 @@ Object b, B[array_length]; Object *c; ``` 与使用 `struct` 大同小异。该例定义了一个名为 `Object` 的类。该类拥有四个成员元素,分别为 `weight,value` 。 并在 `}` 后定义了一个数组 `e` ,也可以使用第十三行后中的方法进行定义。 与使用 `struct` 大同小异。该例定义了一个名为 `Object` 的类。该类拥有四个成员元素,分别为 `weight,value` ;并在 `}` 后定义了一个数组 `B` 。 定义类的指针形同 [ `struct` ](./struct.md) 。 Loading Loading @@ -96,7 +94,7 @@ void Object::change_w(int _weight) { weight = _weight; } 该类有一个打印 `Object` 成员元素的函数,以及更改成员元素 `weight` 的函数。 和函数类似,对于成员函数,也可以先声明,在定义,如第十八行(声明处)以及二十一行后(定义处)。 和函数类似,对于成员函数,也可以先声明,在定义,如第十四行(声明处)以及十七行后(定义处)。 如果想要调用 `var` 的 `print` 成员函数,可以使用 `var.print()` 进行调用。 Loading Loading @@ -199,7 +197,7 @@ class Object { ??? note "关于定义(或重载)构造函数" 一般来说,默认构造函数是不带参数的,这区别于构造函数。构造函数和默认构造函数的定义大同小异,只是参数数量上的不同。 构造函数可以被重载(当然首次被叫做定义)。需要注意的是,如果已经定义了构造函数(指参数列表不为空),那么编译器便不会再合成默认构造函数(无参数)。这会可能会使试图以默认方法构造变量的行为编译失败(指不填入初始化参数)。 构造函数可以被重载(当然首次被叫做定义)。需要注意的是,如果已经定义了构造函数,且构造函数的参数列表不为空,那么编译器便不会再生成无参数的默认构造函数。这会可能会使试图以默认方法构造变量的行为编译失败(指不填入初始化参数)。 使用 C++11 或以上时,可以使用 `{}` 进行变量的初始化。 Loading docs/lang/struct.md +3 −3 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ author: Ir1d, cjsoft, Lans1ot 可以看做是自定义的数据类型。 _事实上不同于 C 中 `struct` ,在 C++ 中 `struct` 被扩展为类似 [ `class` ](./class.md) 的类说明符_。 _本页描述的`struct`不同于 C 中 `struct` ,在 C++ 中 `struct` 被扩展为类似 [ `class` ](./class.md) 的类说明符_。 ## 定义结构体 Loading @@ -20,7 +20,7 @@ Object *c; 上例中定义了一个名为 `Object` 的结构体,两个成员元素 `value,weight` ,类型都为 `int` 。 并在 `}` 后,定义了一个数据类型为 `Object` 的数组 `e` 。当然,对于某种已经存在的类型,也可以使用第七行后中的方法进行定义 常量、变量、指针。 在 `}` 后,定义了数据类型为 `Object` 的常量`a`,变量`b`,变量`tmp`,数组 `B`,指针`c` 。对于某种已经存在的类型,都可以使用这里的方法进行定义常量、变量、指针、数组等。 _关于指针:不必强求掌握。_ Loading Loading @@ -59,7 +59,7 @@ struct Edge { 并且不同的结构体(结构体类型,如 `Object` 这个结构体)或者不同的结构体变量(结构体的实例,如上方的 `e` 数组)可以拥有相同名字的成员元素(如 `tmp.value,b.value` ),同名的成员元素相互独立(拥有独自的内存,比如说修改 `tmp.value` 不会影响 `b.value` 的值)。 这样的好处是可以使用尽可能相同或者相近的变量去描述一个物品。比如说 `Object` 里有 `value` 这个成员变量;我们还可以定义一个 `Car` 结构体,同时也拥有 `value` 这个成员;如果不使用结构体,或许我们就需要定义 `valueOfObject[],valueOfCar[]` 等不同名称的数组来区分。 _说句闲话,如果想要更详细的描述一种事物,还可以定义成员函数,而这是已经是 [类](./class.md) 的知识了。_ _如果想要更详细的描述一种事物,还可以定义成员函数。请参考 [类](./class.md) 获取详细内容。_ ## 更多的操作? Loading Loading
docs/lang/class.md +3 −5 Original line number Diff line number Diff line Loading @@ -26,9 +26,7 @@ Object b, B[array_length]; Object *c; ``` 与使用 `struct` 大同小异。该例定义了一个名为 `Object` 的类。该类拥有四个成员元素,分别为 `weight,value` 。 并在 `}` 后定义了一个数组 `e` ,也可以使用第十三行后中的方法进行定义。 与使用 `struct` 大同小异。该例定义了一个名为 `Object` 的类。该类拥有四个成员元素,分别为 `weight,value` ;并在 `}` 后定义了一个数组 `B` 。 定义类的指针形同 [ `struct` ](./struct.md) 。 Loading Loading @@ -96,7 +94,7 @@ void Object::change_w(int _weight) { weight = _weight; } 该类有一个打印 `Object` 成员元素的函数,以及更改成员元素 `weight` 的函数。 和函数类似,对于成员函数,也可以先声明,在定义,如第十八行(声明处)以及二十一行后(定义处)。 和函数类似,对于成员函数,也可以先声明,在定义,如第十四行(声明处)以及十七行后(定义处)。 如果想要调用 `var` 的 `print` 成员函数,可以使用 `var.print()` 进行调用。 Loading Loading @@ -199,7 +197,7 @@ class Object { ??? note "关于定义(或重载)构造函数" 一般来说,默认构造函数是不带参数的,这区别于构造函数。构造函数和默认构造函数的定义大同小异,只是参数数量上的不同。 构造函数可以被重载(当然首次被叫做定义)。需要注意的是,如果已经定义了构造函数(指参数列表不为空),那么编译器便不会再合成默认构造函数(无参数)。这会可能会使试图以默认方法构造变量的行为编译失败(指不填入初始化参数)。 构造函数可以被重载(当然首次被叫做定义)。需要注意的是,如果已经定义了构造函数,且构造函数的参数列表不为空,那么编译器便不会再生成无参数的默认构造函数。这会可能会使试图以默认方法构造变量的行为编译失败(指不填入初始化参数)。 使用 C++11 或以上时,可以使用 `{}` 进行变量的初始化。 Loading
docs/lang/struct.md +3 −3 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ author: Ir1d, cjsoft, Lans1ot 可以看做是自定义的数据类型。 _事实上不同于 C 中 `struct` ,在 C++ 中 `struct` 被扩展为类似 [ `class` ](./class.md) 的类说明符_。 _本页描述的`struct`不同于 C 中 `struct` ,在 C++ 中 `struct` 被扩展为类似 [ `class` ](./class.md) 的类说明符_。 ## 定义结构体 Loading @@ -20,7 +20,7 @@ Object *c; 上例中定义了一个名为 `Object` 的结构体,两个成员元素 `value,weight` ,类型都为 `int` 。 并在 `}` 后,定义了一个数据类型为 `Object` 的数组 `e` 。当然,对于某种已经存在的类型,也可以使用第七行后中的方法进行定义 常量、变量、指针。 在 `}` 后,定义了数据类型为 `Object` 的常量`a`,变量`b`,变量`tmp`,数组 `B`,指针`c` 。对于某种已经存在的类型,都可以使用这里的方法进行定义常量、变量、指针、数组等。 _关于指针:不必强求掌握。_ Loading Loading @@ -59,7 +59,7 @@ struct Edge { 并且不同的结构体(结构体类型,如 `Object` 这个结构体)或者不同的结构体变量(结构体的实例,如上方的 `e` 数组)可以拥有相同名字的成员元素(如 `tmp.value,b.value` ),同名的成员元素相互独立(拥有独自的内存,比如说修改 `tmp.value` 不会影响 `b.value` 的值)。 这样的好处是可以使用尽可能相同或者相近的变量去描述一个物品。比如说 `Object` 里有 `value` 这个成员变量;我们还可以定义一个 `Car` 结构体,同时也拥有 `value` 这个成员;如果不使用结构体,或许我们就需要定义 `valueOfObject[],valueOfCar[]` 等不同名称的数组来区分。 _说句闲话,如果想要更详细的描述一种事物,还可以定义成员函数,而这是已经是 [类](./class.md) 的知识了。_ _如果想要更详细的描述一种事物,还可以定义成员函数。请参考 [类](./class.md) 获取详细内容。_ ## 更多的操作? Loading