vector的陷阱-最常見的錯誤-

vector的陷阱

#include <string>
#include <iostream>
#include <vector>

using namespace std;

class Man
{
public:
	Man()
	{
		this->count = 0;
	}

	void play()
	{
		count += 10;
		cout<<"I am playing"<<endl;
	}

	int getDrinkCount()
	{
		return count;
	}

private:
	int count; /* 一共喝了多少酒 */
};

int main()
{
	vector<Man> man;
	Man zhangfei, liubei, guanyu;
	man.push_back(liubei);
	man.push_back(guanyu);
	man.push_back(zhangfei);

	man[0].play();
	cout<<man[0].getDrinkCount()<<endl;
	cout<<liubei.getDrinkCount()<<endl;

	system("pause");
	return 0;
}

運行結果:
在這裏插入圖片描述

總結:

push_back 是把參數的值, 拷貝給 vector
men[0] 的值和 liubei 是相同的, 但是, 是兩個不同的對象

結語:

星期六2053組織打球, 計算機網絡作業搞定, ok, 手錶忘記帶回, 只能會球場拿回來.

時間: 2020-06-21-10-32

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章