Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Классы, использующие свободную память

5.1. Копирование объектов class S {private: int n; Type arr[N];public: S():n(0) {} S(int, …); . . .};
5. Классы, использующие свободную память 5.1. Копирование объектов  class S {private:  int n;  Type 5.1. Копирование объектов (продолжение)S ob1(5);. . .{  S ob2 = ob1; 5.2. Динамические объекты  class S { private:  int n; 5.2. Динамические объекты (продолжение)S::S(int k, …):n(k), ptr(new Type[k]){ // необходимая инициализация 5.3. Проблемы  S ob1(5, …);. . .{  S ob2 = 5.4. Копирующий конструктор  выделение памятикопирование данныхS::S(const S &ob):n(ob.n), ptr(NULL){  if(n){ 5.5. Оператор присваивания  освобождение памятивыделение новой памятикопирование данныхпроверка ситуации a = a 5.5. Оператор присваивания (продолжение)S & S::operator = (const S& ob){  if(this 5.6. Использование  S a1(3, …), a2;	a2 = a3;	 // присваиваниеS a3(a1); 5.6. Использование (продолжение)S func (S p) {  S a(p);  .
Слайды презентации

Слайд 2 5.1. Копирование объектов
class S {
private:
int

5.1. Копирование объектов class S {private: int n; Type arr[N];public: S():n(0)

n;
Type arr[N];
public:
S():n(0) {}
S(int,

…);
. . .
};

Слайд 3 5.1. Копирование объектов (продолжение)
S ob1(5);
. . .
{
S

5.1. Копирование объектов (продолжение)S ob1(5);. . .{ S ob2 = ob1;

ob2 = ob1;
S ob3(3);
ob3

= ob1;
}
. . .

Слайд 4 5.2. Динамические объекты
class S {
private:

5.2. Динамические объекты class S { private: int n; Type *ptr;

int n;
Type *ptr;
public:
S():n(0), ptr(NULL)

{ }
S(int, …);
~S(){delete [ ] ptr;}
};

Слайд 5 5.2. Динамические объекты (продолжение)
S::S(int k, …):n(k), ptr(new Type[k])
{
//

5.2. Динамические объекты (продолжение)S::S(int k, …):n(k), ptr(new Type[k]){ // необходимая инициализация

необходимая инициализация
// выделенной области памяти
.

. .
}

Слайд 6 5.3. Проблемы
S ob1(5, …);
. . .
{

5.3. Проблемы S ob1(5, …);. . .{ S ob2 = ob1;

S ob2 = ob1;
S ob3(2, …);

ob3 = ob1;
}
ob1  ???

xxxxx

5

5

???

2

tt

???


Слайд 7 5.4. Копирующий конструктор
выделение памяти
копирование данных
S::S(const S &ob):n(ob.n),

5.4. Копирующий конструктор выделение памятикопирование данныхS::S(const S &ob):n(ob.n), ptr(NULL){ if(n){

ptr(NULL)
{
if(n){
ptr = new Type[n];

// копирование данных
}
}

Слайд 8 5.5. Оператор присваивания
освобождение памяти
выделение новой памяти
копирование данных
проверка

5.5. Оператор присваивания освобождение памятивыделение новой памятикопирование данныхпроверка ситуации a = a

ситуации a = a


Слайд 9 5.5. Оператор присваивания (продолжение)
S & S::operator = (const S&

5.5. Оператор присваивания (продолжение)S & S::operator = (const S& ob){ if(this

ob)
{
if(this != &ob) { // проверка a

= a
delete [ ] ptr;
ptr = NULL;
if((n = ob.n) != 0) {
ptr = new Type[n];
// копирование данных
}
}
return *this;
}

Слайд 10 5.6. Использование
S a1(3, …), a2;

a2 = a3;

5.6. Использование S a1(3, …), a2;	a2 = a3;	 // присваиваниеS a3(a1);

// присваивание

S a3(a1); // копирующий конструктор
S a4 =

a1; // копирующий конструктор

  • Имя файла: klassy-ispolzuyushchie-svobodnuyu-pamyat.pptx
  • Количество просмотров: 129
  • Количество скачиваний: 0