用类定义结构体和用struct定义结构体对比
时间: 2023-06-13 16:04:44 浏览: 204
在C++中,可以使用类或结构体来定义自定义数据类型(也称为用户定义类型)。
使用类定义结构体时,可以使用访问修饰符(public、private、protected)来限制成员变量和成员函数的访问权限。类也可以包含构造函数、析构函数和其他成员函数。类的实例(对象)可以使用类中定义的成员函数来进行操作。
而使用struct定义结构体时,所有成员默认都是公共的。可以使用构造函数,但是不能定义析构函数。由于默认是公共的,因此可以直接访问结构体的成员变量,而不需要通过成员函数来操作。
下面是一个使用类定义结构体的示例代码:
```
class Person {
private:
string name;
int age;
public:
Person(string n, int a) {
name = n;
age = a;
}
void sayHello() {
cout << "Hello, my name is " << name << " and I am " << age << " years old." << endl;
}
};
int main() {
Person p("John", 25);
p.sayHello();
return 0;
}
```
下面是一个使用struct定义结构体的示例代码:
```
struct Person {
string name;
int age;
Person(string n, int a) {
name = n;
age = a;
}
};
int main() {
Person p("John", 25);
cout << "Hello, my name is " << p.name << " and I am " << p.age << " years old." << endl;
return 0;
}
```
通过上面的代码可以看出,使用类定义结构体可以更加灵活地控制成员变量和成员函数的访问权限,而使用struct定义结构体则更加简单直接,可以直接访问结构体的成员变量。
阅读全文