结构体(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只是数据。请解释一下,是否可以在结构体中使用构造函数,如果可以,这与类中的构造函数有什么区别?有没有什么陷阱或限制?