C++结构体:默认构造函数,复制构造函数,重载=运算符
来源:互联网 发布:中国父母知乎 编辑:程序博客网 时间:2024/05/18 02:10
今天才知道原来C的结构体也能有构造函数,虚构函数,从来没用过,受教了!
C++结构体提供了比C结构体更多的功能,如默认构造函数,复制构造函数,运算符重载,这些功能使得结构体对象能够方便的传值。
比如,我定义一个简单的结构体,然后将其作为vector元素类型,要使用的话,就需要实现上述三个函数,否则就只能用指针了。
今天刚好用到了,以为很简单,结果了,犯了一些错误,现将错误记录,以备后查,示例源代码如下:
1 #include <iostream>
2 #include <vector>
3 using namespace std;
4 struct ST
5 {
6 int a;
7 int b;
8 ST() //默认构造函数
9 {
10 a = 0;
11 b = 0;
12 }
13
14 void set(ST* s1,ST* s2)//赋值函数
15 {
16 s1->a = s2->a;
17 s1->b = s2->b;
18 }
19 ST& operator=(const ST& s)//重载运算符
20 {
22 set(this,(ST*)&s)
24 }
25 ST(const ST& s)//复制构造函数
26 {
28 *this = s;29 }
30 };
31 int main()
32 {
33 ST a ; //调用默认构造函数
34 vector<ST> v;
35 v.push_back(a); //调用复制构造函数
36 ST s = v.at(0); //调用=函数
37 cout << s.a <<" " << s.b << endl;
38 cin >> a.a;
39 return 0;
40 }
0 0
- C++结构体:默认构造函数,复制构造函数,重载=运算符
- C++结构体:默认构造函数,复制构造函数,重载=运算符
- C++结构体:默认构造函数,复制构造函数,重载=运算符
- C++结构体:默认构造函数,复制构造函数,重载=运算符
- 【C++】复制构造函数(拷贝构造函数)和=运算符重载使用的区别
- 运算符重载与复制构造函数
- 复制构造函数和=运算符重载的区别
- C++语法,复制构造函数与=运算符重载
- C++ 复制构造函数和赋值运算符重载函数
- c/c++中如何写结构体的 构造函数 和 重载运算符?
- 复制构造函数和重载赋值运算符
- C++ 中的赋值运算符重载和复制构造函数
- 复制构造函数、重载赋值运算符、类型转换小结
- C++之拷贝构造函数和复制运算符重载
- 复制构造函数,赋值运算符重载,列表初始化
- 第十二章:默认复制构造函数和赋值运算符
- 复制构造函数与赋值重载(c++)
- obj1 = obj2 调用的是复制构造函数,还是重载复制运算符
- 反向代理介绍
- 没有善始,善终未知,就从当下开始吧
- js循环数组
- sqlmap进阶: 坎坷地安装cx_Oracle模块,直接连接oracle来dump
- 如何枚举产生i2c_client
- C++结构体:默认构造函数,复制构造函数,重载=运算符
- 深度学习与模式识别之项目整理
- WINCE 下使用DUMP查找BUG
- 数字图像处理之二维码图像提取算法(三)
- 第十一周项目1-函数版星号图3
- 第十一周项目1——printchs函数的编写
- mysql添加新用户以及分配权限
- 第十一周 项目一 函数版字母图
- layoutSubviews总结