Commit c82f300d authored by Lans1ot's avatar Lans1ot
Browse files

修改(忘了有这回事了)

parent 4a1f2325
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -26,9 +26,7 @@ Object b, B[array_length];
Object *c;
```

与使用 `struct` 大同小异。该例定义了一个名为 `Object` 的类。该类拥有四个成员元素,分别为 `weight,value`

并在 `}` 后定义了一个数组 `e` ,也可以使用第十三行后中的方法进行定义。
与使用 `struct` 大同小异。该例定义了一个名为 `Object` 的类。该类拥有四个成员元素,分别为 `weight,value` ;并在 `}` 后定义了一个数组 `B`

定义类的指针形同 [ `struct` ](./struct.md)

@@ -96,7 +94,7 @@ void Object::change_w(int _weight) { weight = _weight; }

该类有一个打印 `Object` 成员元素的函数,以及更改成员元素 `weight` 的函数。

和函数类似,对于成员函数,也可以先声明,在定义,如第十行(声明处)以及二十一行后(定义处)。
和函数类似,对于成员函数,也可以先声明,在定义,如第十行(声明处)以及十七行后(定义处)。

如果想要调用 `var``print` 成员函数,可以使用 `var.print()` 进行调用。

@@ -199,7 +197,7 @@ class Object {
??? note "关于定义(或重载)构造函数"
    一般来说,默认构造函数是不带参数的,这区别于构造函数。构造函数和默认构造函数的定义大同小异,只是参数数量上的不同。

    构造函数可以被重载(当然首次被叫做定义)。需要注意的是,如果已经定义了构造函数(指参数列表不为空,那么编译器便不会再合成默认构造函数(无参数)。这会可能会使试图以默认方法构造变量的行为编译失败(指不填入初始化参数)。
    构造函数可以被重载(当然首次被叫做定义)。需要注意的是,如果已经定义了构造函数,且构造函数的参数列表不为空,那么编译器便不会再生成无参数的默认构造函数。这会可能会使试图以默认方法构造变量的行为编译失败(指不填入初始化参数)。

使用 C++11 或以上时,可以使用 `{}` 进行变量的初始化。

+3 −3
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ author: Ir1d, cjsoft, Lans1ot

可以看做是自定义的数据类型。

_事实上不同于 C 中 `struct` ,在 C++ 中 `struct` 被扩展为类似 [ `class` ](./class.md) 的类说明符_
_本页描述的`struct`不同于 C 中 `struct` ,在 C++ 中 `struct` 被扩展为类似 [ `class` ](./class.md) 的类说明符_

## 定义结构体

@@ -20,7 +20,7 @@ Object *c;

上例中定义了一个名为 `Object` 的结构体,两个成员元素 `value,weight` ,类型都为 `int`

`}` 后,定义了一个数据类型为 `Object`数组 `e` 。当然,对于某种已经存在的类型,可以使用第七行后中的方法进行定义 常量、变量、指针。
`}` 后,定义了数据类型为 `Object`常量`a`,变量`b`,变量`tmp`,数组 `B`,指针`c`对于某种已经存在的类型,可以使用这里的方法进行定义常量、变量、指针、数组等

_关于指针:不必强求掌握。_

@@ -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) 获取详细内容。_

## 更多的操作?