|
发表于 2023-6-9 10:25:53
|
显示全部楼层
当然可以,我很乐意帮助你理解这些概念。
1. 组合类(Composition): 组合是一种对象间的关系,意味着一个类可以包含另一个类的对象作为其成员。这是一种非常重要的方式来构建复杂的类。例如,假设我们有一个"Date"类和一个"Person"类,我们可以在"Person"类中包含一个"Date"对象,表示这个人的生日。
class Date {
public:
Date(int year, int month, int day): year(year), month(month), day(day) {}
// ...
private:
int year;
int month;
int day;
};
class Person {
public:
Person(string name, Date birthday): name(name), birthday(birthday) {}
// ...
private:
string name;
Date birthday;
};
然后,你就可以创建一个人,并指定他的生日:
Date birthday(1990, 1, 1);
Person person("Tom", birthday);
2. 常成员(Const Member): 常成员是一种特殊类型的类成员,它的值在对象创建后就不能改变。你可以通过在成员变量前面添加"const"关键字来声明一个常成员。
class MyClass {
public:
MyClass(int x): x(x) {}
// ...
private:
const int x;
};
在这个例子中, x 是一个常成员,一旦对象被创建, x 的值就不能改变。
3. 静态成员(Static Member): 静态成员是属于类的成员,而不是属于类的某个特定对象的成员。这意味着,无论你创建了多少个这个类的对象,静态成员只有一份。静态成员可以是数据成员(变量)或成员函数(方法)。
class MyClass {
public:
static int x;
// ...
};
int MyClass::x = 0; // 初始化静态成员
在这个例子中, x 是一个静态成员。所有的"MyClass"对象都共享这个 x ,并且可以通过类名直接访问它,如"MyClass::x"。 |
|