typedef struct{}class;和struct class{};有什么区别
时间: 2023-05-14 19:06:59 浏览: 44
typedef struct{} class; 和 struct class{}; 的区别在于前者定义了一个空结构体并给它起了一个别名 class,而后者定义了一个名为 class 的结构体。在使用时,前者可以直接使用 class 作为类型名,而后者需要使用 struct class 作为类型名。
相关问题
C++中,typedef struct与class的区别
在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;
};
```
typedef struct 和struct
typedef struct和struct之间的不同之处是:
- 在使用struct定义结构体时,需要在定义结构体变量时使用struct关键字,例如:`struct Student s;`
- 而在使用typedef struct定义结构体时,可以使用自定义的结构体类型名作为变量类型,不再需要struct关键字,例如:`Student s;`。这样更方便简洁。
typedef的用法是为了给结构体类型定义一个别名,使得在使用结构体类型时更加方便。通过使用typedef,可以直接使用自定义的结构体类型名作为变量类型,而无需再添加struct关键字。
举个例子,假设有一个typedef struct定义的结构体类型:
```
typedef struct {
int sid;
char name<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [struct与typedef struct的区别](https://blog.csdn.net/shanshanhi/article/details/52268167)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [关于typedef和struct对比](https://download.csdn.net/download/weixin_38732811/13687502)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [结构体定义struct和typedef struct的区别(重新整理版)](https://blog.csdn.net/WalterBrien/article/details/126141547)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]