C++结构体:默认构造函数,复制构造函数,重载=运算符
C++结构体提供了比C结构体更多的功能,如默认构造函数,复制构造函数,运算符重载,这些功能使得结构体对象能够方便的传值。
比如,我定义一个简单的结构体,然后将其作为vector元素类型,要使用的话,就需要实现上述三个函数,否则就只能用指针了。
#include <iostream> #include <vector> using namespace std; struct ST { int a; int b; ST() //默认构造函数 { a = 0; b = 0; } void set(ST* s1,ST* s2)//赋值函数 { s1->a = s2->a; s1->b = s2->b; } ST& operator=(const ST& s)//重载运算符 { set(this,(ST*)&s) } ST(const ST& s)//复制构造函数 { *this = s; } }; int main() { ST a ; //调用默认构造函数 vector<ST> v; v.push_back(a); //调用复制构造函数 ST s = v.at(0); //调用=函数 cout << s.a <<" " << s.b << endl; cin >> a.a; return 0; }