C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 10 - Наш класс в векторе / Библиотеки и функции / Visual C++

Шаг 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 :-). Мы знаем, что вектор может работать с архивом, а наш класс пока не умеет, и сортировка вряд ли будет нормальная пока не определены правила, как определить кто старше или больше !!!


Загрузить проект | | |
Автор Каев Артем.
[AD]