Шаг 10 - Наш класс в векторе

На данный момент мы использовали в векторе стандартные классы MFC, а как быть для того, чтобы в вектор можно было пеместить произвольный класс ? Для этого нужно соблюдать ряд условий. Минимальные условия.

Давайте реализуем и попробуем.

// СlassVec.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "vector"
#include "iostream.h"

using namespace std;

class CMyClass
{
public:
	CMyClass();			// конструктор по умолчанию
	CMyClass(const CMyClass &my);	// конструктор копий
	CMyClass(int xx,int yy);
	~CMyClass();			// деструктор
	int x;	
	int y;
};

CMyClass::CMyClass()
{
	x=0;
	y=0;
}

CMyClass::CMyClass(const CMyClass &my)
{
	x=my.x;
	y=my.y; 
}

CMyClass::CMyClass(int xx,int yy)
{
	x=xx;
	y=yy; 
}

CMyClass::~CMyClass()
{
}


void main()
{
	vector< CMyClass > v;	
	v.push_back(CMyClass(1,1));
	v.push_back(CMyClass(2,2));
	v.push_back(CMyClass(3,3));
	for (int x=0;x < v.size();x++)
		cout << v[x].x << " " << v[x].y << endl;
};

Естественно, это только самые базовые возможности. Для полного функционирования потребуется перегрузить достаточное количество операций. Довольно много. Как определить необходимость перегрузки данной операции ? Компилятор сам скажет :-)) в виде error :-). Мы знаем, что вектор может работать с архивом, а наш класс пока не умеет, и сортировка вряд ли будет нормальная пока не определены правила, как определить кто старше или больше !!!


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 09.02.2000