C++基础 class、struct、union详细攻略
1. class
在C++中,class是一种构造用户定义的数据类型的方式。class是C++的一个重要特性,是面向对象编程的基础。class可以定义一个包含数据和函数的完整类型。可以在其中定义成员变量和成员函数,也可以使用访问限制符定义共有成员和私有成员。
C++中,使用class定义一个类时,可以省略访问限制符,默认是private。访问限制符包括public、protected和private。与struct不同的是,class的默认访问控制是“private”,而struct的默认访问控制是“public”。
以下是一个使用class定义一个类的示例:
class Person {
private:
string name;
int age;
public:
void setName(string name) { this->name = name; }
void setAge(int age) { this->age = age; }
string getName() { return this->name; }
int getAge() { return this->age; }
};
以上示例定义了一个名为Person的类,它有姓名和年龄两个私有成员变量和四个公有成员函数。
2. struct
struct是C++中的另一种构造用户定义的数据类型的方式。与class类似,struct也可以定义包含数据和函数的完整类型。可以在其中定义成员变量和成员函数,也可以使用访问限制符定义共有成员和私有成员。
与class不同的是,struct的默认访问控制是public,因此,struct中定义的所有成员默认都是公有的。虽然两种方式都可以定义类,但一般来说,struct更适合仅仅包含数据的对象,而class更适合需要封装数据和函数的对象。
以下是一个使用struct定义一个类的示例:
struct Point {
double x;
double y;
void print() {
cout << "x: " << x << ", y: " << y << endl;
}
};
以上示例定义了一个名为Point的结构体,它有私有成员变量x和y和一个公有成员函数print()。
3. union
union是C++中的一种特殊的复合数据类型,同样可以定义包含数据的完整类型。在C++中,union的所有成员共享同一块内存空间,并且可以在不同的时间访问同一块内存。这使得union的大小等于其中最大的成员大小。通常,union用于节省空间,因为程序中只需要使用其中的一个成员。
以下是一个使用union定义一个类的示例:
union Number {
int i;
float f;
double d;
Number() {}
};
以上示例定义了一个名为Number的联合体,它有三个成员变量(int i,float f和double d)。由于union的成员变量是共享同一块内存空间,因此使用一个构造函数来给成员变量赋初值并不合适。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++基础 class、struct、union详细 - Python技术站