Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

перегрузка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Аргумент типа "HDC" несовместим с параметром типа const PAINTSTRUCT http://www.cyberforum.ru/cpp-beginners/thread1101552.html
#include <Windows.h> int main(void) { PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); HPEN p1, p2, p3, p4, p0; p1 = CreatePen(PS_SOLID, 4, RGB(255, 0, 0)); p2 = CreatePen(PS_SOLID, 4,...
C++ Игра Морской Бой #include <conio.h> #include <stdlib.h> #include <iostream.h> #include <dos.h>Kletka {:Pustaya_kletka, Vistrel, X, Y;:(int x, int y) {Vistrel = 0; Pustaya_kletka = 0; X = x; Y = y;}... http://www.cyberforum.ru/cpp-beginners/thread1101547.html
C++ Упростить условие
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip> #include<conio.h> #include<iomanip> #define n 2 using namespace std; struct champ
Метод одноалфавитного шифрования с заданным смещением C++
Доброго времени суток. У меня в институте начался курс криптографии и как полагается первая лаба зашифровать строку шифрома Цезаря (знаю что сто раз было). Задание звучит так: Составить программу,...
C++ Сравнение строк без нескольких символов http://www.cyberforum.ru/cpp-beginners/thread1101507.html
Здравствуйте, у меня вопрос по сабжу. Есть задание на написание парсера, всё бы хорошо, только не знаю как оптимально сравнивать строки за исключением некоторых символов. В общем так: есть...
C++ Какие 2 сортировки надо знать, чтобы на все случаи жизни быть застрахованным? Всем добрый вечер! Форум уже давно читаю на правах гостя. Сегодня всерьез решил заняться темой сортировок. Форум очень интересный, уверен, не зря зарегистрировался. Собственно, сабж: Прочитал... подробнее

Показать сообщение отдельно
Lers
13 / 13 / 3
Регистрация: 27.05.2012
Сообщений: 203

перегрузка - C++

20.02.2014, 20:12. Просмотров 161. Ответов 0
Метки (Все метки)

Вот моя перегрузка
C++
1
2
3
4
5
6
7
8
9
10
11
Disc* FCollectionDisc :: operator [] (char* l)
{
  for (int i=0; i<getcount(); i++)
  {
    if (strcmp(getitem(i)->getnamedisc(),l)==0)
    {
      return getitem(i);
    }
  }
  return NULL;
}
FcollectionDisc (это коллекция, в ней лежат объекты базового класса Disc) и FcollectionDisc наследник Collection, методы оттуда.

C++
1
2
3
FcollectionDisc f1;
//тут я добавил некоторое кол-во объектов
f1["Taxi"]->putobject(); // вот если в коллекции Taxi нету то прога критует.
Критует потому что putobject()-это вывод объекта, нечего выводить. Подскажите какую проверку написать, чтобы не вылетало или если такого объекта нету, то дальше не вызывало putobject();

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <string.h>
#include <stdio.h>
#include "Collection.h"
 
 
Collection :: Collection (Collection *x)
{
 
    col = x->col;
    items = new Disc *[col];
    for (int i = 0; i < col; i++)
    {
     items[i]=new Disc(*x->items[i]);
     // items[i]=x->items[i];
  //      items[i]=new Disc;
   //     items[i]->sethours(x->items[i]->gethours());
  //      items[i]->setnamedisc(x->items[i]->getnamedisc());
    }
}
 
 
Collection::Collection()
{
  col=0;
  items=new Disc*[10];
}
 
Collection::~Collection()
{
  for (int i=0; i<col; i++)
   {
      delete items[i];
    }
  delete [] items;
}
 
void Collection::additem(Disc *x)
{
    items[col] = x;
    col++;
}
 
void Collection::delitem(int a)
{
  delete items[a];
   for (int i=a; i<col-1; i++)
   {
    items[i]=items[i+1];
   }
  col--;
}
 
int Collection::getcount()
{
  return col;
}
 
Disc * Collection::getitem(int num)
{
    return items[num];
}
 
void Collection::putitems()
{
  for(int i = 0; i < col; i++)
   {
     items[i]->putobject();
   }
 
}
 
void Collection :: swap (int r1, int r2)
{
 Disc* g=items[r1];
 items[r1]=items[r2];
 items[r2]=g;
}
Добавлено через 21 секунду
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include <string.h>
#include <stdio.h>
#include "disc.h"
 
void Disc :: setnamedisc(char *s)
{
  strcpy(namedisc,s);
}
 
char* Disc :: getnamedisc()
{
  return namedisc;
}
 
void Disc :: sethours(int b)
{
  hours=b;
}
 
int Disc :: gethours()
{
  return hours;
}
 
void Disc :: getobject()
{
  fflush(stdin);
  printf("\nВведите название дисциплины -> ");
  gets(namedisc);
  printf("Введите кол-во часов -> ");
  scanf("%d",&hours);
}
 
void Disc :: putobject()
{
  printf("Название дисциплины: ");
  puts(namedisc);
  printf("Количество часов: %d\n",hours);
}
 
Disc :: Disc()
{
  namedisc[0]=0;
  hours=0;
}
 
Disc :: Disc(char *s, int h)
{
  strcpy(namedisc,s);
  hours=h;
}
 
Disc :: Disc(Disc &x)
{
  strcpy(namedisc,x.namedisc);
  hours=x.hours;
}
 
Disc :: Disc(char *s)
{
  strcpy(namedisc,s);
  hours=0;
}
 
Disc& Disc :: operator +=(char *h)
{
 strcat(namedisc,h);
 
 return *this;
 
}
Добавлено через 7 минут
Ай, проблему решил
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru