为什么我的vector不调用构造函数呢

#include"stdafx.h"#include<string>#include<vector>#include<iostream>usingnamespacestd... #include "stdafx.h"#include<string>#include<vector>#include<iostream>using namespace std;class Sales_item{public: Sales_item():units_sold(0), revenue(0.0){} Sales_item(const string &book) :units_sold(0), revenue(0.0),isbn(book) { cout << "已调用" << endl; } Sales_item(const Sales_item &orig) :isbn(orig.isbn), units_sold(orig.units_sold), revenue(orig.revenue) { cout << "复制函数被调用了" << endl; } Sales_item& operator=(const Sales_item &rhs) { cout << "操作已调用" << endl; isbn = rhs.isbn; units_sold = rhs.units_sold; revenue = rhs.revenue; return *this; } private: double revenue; string isbn; unsigned units_sold;}; Sales_item foo(Sales_item item){ Sales_item temp; temp = item; return temp;}int main(){ cout << "vector" << endl; vector <Sales_item> ab(5); Sales_item a; Sales_item b("0-201-78345-X"); Sales_item c(b); a = b; Sales_item item = string("9-999-99999-9"); cout << "foo" << endl; Sales_item ret; ret = foo(item); return 0;}用的VS2013 展开
 我来答
波盼柳0iX
2018-03-12 · TA获得超过466个赞
知道小有建树答主
回答量:633
采纳率:57%
帮助的人:81.2万
展开全部
C++ 98 不支持直接在类成员声明的时候初始化.
C++ 11 似乎支持, 但是我用的编译器还不支持, 所以也不了解.
要这么写.
class DeckOfCards
{
public:
DeckOfCards()
: deck(50) // 这是 C++的成员初始化方法.
{
}
private:
vector deck;
};
构造函数后面接冒号, 接成员名 接构造参数, 多个的话用逗号隔开
追问
谢谢亲
我这个是这样子情况呢
我写了一个类,类里有了构造函数
然后呢在主函数里我写了
vector 变量(5)
按理它应该会调用我类里面的构造函数来初始化这个vector
但是呢没有很晕
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式