C++中struct和typedef struct的区别
你好!我是C++新手,刚从C转过来。在C中,我经常使用`typedef struct`,这样每次声明变量时就不用写关键字`struct`。例如:
```c
// C代码
typedef struct {
int x;
int y;
} Point;
Point p; // 无需'struct'也能工作
```
现在我正在学习C++,看到很多人直接写:
```cpp
struct Point {
int x;
int y;
};
Point p; // 同样有效!
```
让我困惑的是:在C++中,是否需要使用`typedef struct`,还是可以直接用`struct`?它们之间有什么区别?有没有什么情况下`typedef struct`仍然有用?或者这只是C语言的遗留习惯?
我在Visual Studio 2022中尝试了两种方式,都能编译通过。但我想知道哪种方式被认为是正确的,以及为什么。提前感谢你的解释!
<<>>
主要区别:C++自动为结构体创建typedef
在C++中,关键字struct(以及class)会自动创建一个类型,该类型可以直接使用,无需额外的typedef。