class类与structc++
时间: 2024-05-13 11:17:07 浏览: 6
在C++中,class和struct都可以用来定义自定义的数据类型。
它们的主要区别在于默认的访问控制不同。对于class,默认的访问控制是private,而对于struct,默认的访问控制是public。访问控制指的是类的成员(包括变量和函数)对外部程序访问的可见性。
以下是一个示例:
```cpp
class Person {
private:
string name;
int age;
public:
void setName(string n) {
name = n;
}
void setAge(int a) {
age = a;
}
};
struct Animal {
string name;
int age;
void setName(string n) {
name = n;
}
void setAge(int a) {
age = a;
}
};
```
在上面的代码中,Person类和Animal结构体都有两个成员变量和两个成员函数,但是Person类的成员变量默认是private的,而Animal结构体的成员变量默认是public的。
使用这两个类型的方法是类似的,例如:
```cpp
Person p;
p.setName("Alice");
p.setAge(25);
Animal a;
a.setName("Charlie");
a.setAge(3);
```
这些代码都可以正常工作,因为它们都调用了类或结构体中定义的成员函数。但是,如果我们尝试直接访问Person类中的name变量,就会导致编译错误,因为它是一个private变量:
```cpp
Person p;
p.name = "Alice"; // 编译错误
```