Avatar ·

结构体(struct)在C++中可以有构造函数吗?

你好!我刚开始学习C++,遇到了一个困惑。在C语言中,我习惯了struct只是一组数据,不能有任何方法。但在C++中,我看到struct似乎类似于class,但默认成员是公有的。 我的问题是:结构体可以有构造函数吗?如果可以,它是如何工作的?我尝试写了这样的代码: ```cpp #include using namespace std; struct Point { int x; int y; // 尝试添加构造函数 Point(int a, int b) { x = a; y = b; } }; int main() { Point p1(10, 20); // 错误?还是可以工作? cout << p1.x << " " << p1.y; return 0; } ``` 但我不确定这是否正确。编译器似乎没有报错,但有些书上说struct只是数据。请解释一下,是否可以在结构体中使用构造函数,如果可以,这与类中的构造函数有什么区别?有没有什么陷阱或限制?