下面的一小段儿代码,我不知道为什么它的执行逻辑是什么?
2014-01-22 10:32
627 查看
程序代码:
输出结果:
1
1
1
3
问题来了,为什么会调用第三个拷贝构造函数? 求帮忙分析,不胜感激呢。
#include <iostream> #include <cassert> #include <vector> using namespace std; clase U{ public: long id; long generation; static long total_copies; U():id(0){} U(long n):id(n),generation(0){} U(const U& z): id(z.id),generation(z.generation+1){++total_copies;} }; long U::total_copies = 0; int main() { vector<U> vector(3); for(int i=0;i<3;i++) cout<<vector[i].generation<<endl; cout<<U::total_copies<<endl; return 0; }
输出结果:
1
1
1
3
问题来了,为什么会调用第三个拷贝构造函数? 求帮忙分析,不胜感激呢。
相关文章推荐
- Markdown 代码测试
- php数组转换成xml
- Qt BUG及功能实现
- Markdown 代码测试!
- Django 数据模型的字段列表整理
- python读写配置文件
- C++如何将CString 转化成char *
- C# viewstate
- Python利用ConfigParser读取配置文件
- What’s New in Python 2.7 — Python 3.4.0b2 documentation
- .net(C#) 读取配置文件
- Spring data jpa的OpenEntityManagerInViewFilter
- What’s New in Python 2.7 — Python 3.4.0b2 documentation
- HBase Java API类介绍
- spring data jpa 中的OpenEntityManagerInViewFilter 取代OpenSessionInViewFilter 放置session失效
- QT的文件操作
- java.lang.RuntimeException: Fail to connect to camera service
- 解决initializing java tooling(1%)
- asp.net远程获取文件代码
- php://input