Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

SHANDLE

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
class vector
{
  int*  m_pVector;
  int   m_nSize;
  static int s_nObjects;
 
// Constructor  
public:
  vector();
  vector(int nSize);
  vector(const vector &vector);
 
// Destructor
public:
  ~vector();
 
// Attributes
public:
  static int ObjectCount();
  int Size() const;
 
// Operation
public:
  vector& operator=(const vector &r);
  bool GetAt(int nIndex, int &nValue) const;
  bool SetAt(int nIndex, int nValue);
  void Display() const;
};
 
int vector::s_nObjects = 0;
 
vector::vector()
  : m_pVector(NULL)
  , m_nSize(0)
{
  s_nObjects++;
  cout << "vector::vector()\n";
}
 
vector::vector(int nSize)
  : m_pVector(NULL)
  , m_nSize(nSize)
{
  m_pVector = new int [nSize];
  s_nObjects++;
  cout << "vector::vector(" << nSize << ")\n";
}
 
vector::vector(const vector &r)
  : m_pVector(NULL)
  , m_nSize(r.m_nSize)
{
  m_pVector = new int [m_nSize];
  for (int i = 0; i < m_nSize; i++)
  {
    m_pVector[i] = r.m_pVector[i];
  }
  s_nObjects++;
  cout << "vector::vector(const vector &r)\n";
}
 
vector::~vector()
{
  if (m_pVector)
  {
    delete [] m_pVector;
  }
  s_nObjects--;
  cout << "vector::~vector()\n";
}
 
int vector::ObjectCount()
{
  return s_nObjects;
}
 
int vector::Size() const
{
  return m_nSize;
}
 
vector& vector::operator=(const vector &r)
{
  cout << "vector& vector::operator=(const vector &r)\n";
  if (m_pVector)
  {
    delete [] m_pVector;
    m_pVector = NULL;
  }
  m_pVector = new int [r.m_nSize];
  m_nSize = r.m_nSize;
 
  for (int i = 0; i < m_nSize; i++)
  {
    m_pVector[i] = r.m_pVector[i];
  }
  return *this;
}
 
bool vector::GetAt(int nIndex, int &nValue) const
{
  if (m_pVector && nIndex >= 0 && nIndex < m_nSize)
  {
    nValue = m_pVector[nIndex];
    return true;
  }
  return false;
}
 
bool vector::SetAt(int nIndex, int nValue)
{
  if (m_pVector && nIndex >= 0 && nIndex < m_nSize)
  {
    m_pVector[nIndex] = nValue;
    return true;
  }
  return false;
}
 
void vector::Display() const
{
  cout << "class vector\n";
  cout << "Size: " << m_nSize << "\n";
  for (int i = 0;i < m_nSize; i++)
  {
    cout << "element[" << i<< "] = " << m_pVector[i] << "\n";
  }
}
 
int main()
{
// По умолчанию
  vector f1;
  f1.Display();
 
// С параметром
  vector f2(10);
  f2.Display();
 
  for (int i = 0, n = f2.Size(); i < n; i++)
  {
    f2.SetAt(i, i);
  }
  f2.Display();
 
// снова с параметром
  vector *pf3 = new vector(2);
  pf3->Display();
 
// копирующий
  vector f4(*pf3);
  f4.Display();
 
// копирующий
  vector z1(f2);
  z1.Display();
 
// по умолчанию
  vector z2;
  z2.Display();
 
// опрератор присваивания
  z2 = z1;
  z2.Display();
 
  cout << "Quantity of vectors: " << vector::ObjectCount() << "\n";
  delete pf3;
 
  return 0;
}
 


Всего записей: 928 | Зарегистр. 19-01-2007 | Отправлено: 14:43 11-10-2008 | Исправлено: SHANDLE, 14:56 11-10-2008
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи по C/С++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru