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

Классы,дружественные классы, структуры - C++

Восстановить пароль Регистрация
 
ton4ik
2 / 2 / 0
Регистрация: 14.10.2009
Сообщений: 28
05.05.2010, 14:33     Классы,дружественные классы, структуры #1
Здравствуйте!
Вот задание:
Класс «Свойства объекта» является словарем особого вида, у которого ключи и значения являются строками: ключом эле-мента словаря является имя свойства, а значением – значение свойства. Некоторые свойства могут иметь значения по умолча-нию. Пример элемента словаря: {[Name], txtBook}.
Операции:
• создание объекта с заданным количеством свойств, часть из которых имеет заданные значения (свойства со значениями по умолчанию);
• установка значения свойства;
• получение значения свойства по ключу (если свойство ус-тановлено, возвращается установленное значение, если зна-чение свойства не устанавливалось, но у него есть значение по умолчанию, то возвращается значение по умолчанию, иначе признак того, что свойство не установлено);
• вывод текущих значений свойств объекта.
Вот код(очень немного его тут):
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <iomanip.h>
 
class property
{
private:
 int y,z;
 int cur;
 char key[64];
 char **value;
 char def_value[256];
public:
 property (int y): y(y) { value=new char*[y]; for (int i=0;i<y;i++) value[i]=new char[256]; }
 property (int y, int z, char def_value[256]);
 ~property() { for (int i=0;i<y;i++) delete[] value[i]; delete[] value; }
 void install_property();
};
 
class properties
{
private:
 int n;
 property *p(y);
public:
 friend class property;
 properties (int n): n(n) { p(y)=new property(y)[n]; }
};
 
int menu();
string rus(char s[]);
 
property::property(int y, int z, char def_value[256]): y(y), z(z)
{
value=new char*[y]; for (int i=0;i<y;i++) value[i]=new char[256];
for (int i=0;i<z;i++) value[i]=def_value;
}
 
void property::install_property()
{
cout<<rus("Ââåäèòå èìÿ (êëþ÷) ñâîéñòâГ*: "); cin.get(); cin.getline(key,64);
cout<<rus("Ââåäèòå êîëè÷åñòâî Г§Г*Г*Г·ГҐГ*ГЁГ©: "); cin>>y;
}
 
void main( )
{
   int k;
   do
      {
      k=menu( );
      switch (k)
      {
      case 1:  break;
      case 2:  break;
      case 3:  break;
      case 4:  break;
      case 5:  break;
      case 0:  return;
      default: cout<<rus("ГЋГёГЁГЎГЄГ*" );
      }
   }while (true);
}
 
 
int menu ()
{  clrscr();
   int k;
   cout<<setw(55)<<rus("Г‚Г*ðèГ*Г*ГІ 14. ГЉГ«Г*Г±Г± ÑâîéñòâГ* îáúåêòГ*.")<<endl<<endl;
   cout<<endl;
   cout<<rus("ГЊГҐГ*Гѕ:")<<endl;
   cout<< rus("1. ÑîçäГ*Г*ГЁГҐ îáúåêòГ* Г± Г§Г*Г¤Г*Г*Г*ûì êîëè÷åñòâîì ñâîéñòâ")<<endl;
   cout<< rus("2. ÑîçäГ*Г*ГЁГҐ îáúåêòГ* Г± ñâîéñòâГ*ìè ïîóìîë÷Г*Г*ГЁГѕ")<<endl;
   cout<< rus("3. ÓñòГ*Г*îâêГ* Г§Г*Г*Г·ГҐГ*ГЁГї ñâîéñòâГ*")<<endl;
   cout<< rus("4. Ïîëó÷åГ*ГЁГҐ Г§Г*Г*Г·ГҐГ*ГЁГї ñâîéñòâГ* ГЇГ® êëþ÷ó")<<endl;
   cout<< rus("5. Âûâîä ГІГҐГЄГіГ№ГЁГµ Г§Г*Г*Г·ГҐГ*ГЁГ© ñâîéñòâ îáúåêòГ*.")<<endl;
   cout<< rus("0. Âûõîä")<<endl;
   cout<<endl;
   cout<<rus("ÓêГ*æèòå ГЇГіГ*ГЄГІ ìåГ*Гѕ: ");
   cin>>k;
   return k;
}
string rus(char s[])
{
string t;
 int i=0;
 t=s;
 while (s[i]!=0)
 {
   if(s[i]>='ГЂ'&& s[i]<='ГЇ') t[i]-=64;
   if(s[i]>='Г°'&& s[i]<='Гї') t[i]-=16;
   if(s[i]=='ВЁ')t[i]=240;
   if(s[i]=='Вё') t[i]=241;
   i++;
 }
 return t;
}
и вот вообщем-то в чем проблема, я очень запутался как лучше сделать: с двумя классами, с одной структурой и классом, али еще как.
с двумя классами помойму не очень потому что как писать конструктор для класса в котором объект уже элемент класса..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2010, 14:33     Классы,дружественные классы, структуры
Посмотрите здесь:

C++ Классы.Дружественные функции
C++ Дружественные функции и классы
Дружественные классы C++
Дружественные классы C++
Дружественные классы. C++
C++ Дружественные классы
Дружественные функции и классы C++
Дружественные перегрузки операторов и дружественные классы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 07:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru