C++中,typedef struct与class的区别
时间: 2024-05-07 09:22:22 浏览: 145
在C++中,typedef struct和class都可以用来定义类的类型。它们的主要区别在于默认的访问权限和成员变量/函数的默认访问权限。
typedef struct定义的结构体默认的访问权限为public,而class定义的类默认的访问权限为private。因此,如果使用class定义一个类,需要在类的定义中显式指定公共成员函数和数据成员。
另外,typedef struct可以使用typedef关键字来为结构体类型取一个别名,而class则没有这个功能。
下面是一个使用typedef struct定义结构体和使用class定义类的例子:
```
// typedef struct定义结构体
typedef struct PersonStruct {
char name[20];
int age;
} PersonS;
// class定义类
class PersonClass {
public:
char name[20];
int age;
};
```
使用typedef struct定义结构体类型时,可以使用PersonS作为结构体类型的别名:
```
PersonS person1;
```
而使用class定义类时,需要显式指定成员函数和数据成员的访问权限:
```
class PersonClass {
public:
char name[20];
int age;
void setName(char *name);
void setAge(int age);
char *getName();
int getAge();
private:
int id;
};
```
阅读全文