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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ton4ik
2 / 2 / 0
Регистрация: 14.10.2009
Сообщений: 28
#1

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

05.05.2010, 14:33. Просмотров 690. Ответов 0
Метки нет (Все метки)

Здравствуйте!
Вот задание:
Класс «Свойства объекта» является словарем особого вида, у которого ключи и значения являются строками: ключом эле-мента словаря является имя свойства, а значением – значение свойства. Некоторые свойства могут иметь значения по умолча-нию. Пример элемента словаря: {[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++
#include &lt;iostream&gt; using namespace std; class person; class book { public: book(){}; int get_inf(person &amp;a); void...

Дружественные классы - C++
- У меня имеется класс: struct ListNodeBase { // ......... private: ListNodeBase *prev_, *next_; // связи с соседями....

Дружественные классы. - C++
Есть ли смысл в коде: class A{ ... public: bool ff(); } class B{

Дружественные классы - C++
Всем привет! Нашел в интернете как подружить два класса, вышло Но в моёй ситуции нужно классы поменять местами, а из-за это ничего...

Дружественные классы - C++
Доброго времени суток, Господа. Собственно, хотел бы услышать Вашего мнения по поводу использования дружественных классов. Сколько книг...

Дружественные классы - C++
Помогите !!! Завтра надо сдавать а я ету тему совсем непонимаю... Создайте класс Matrix для хранения матрицы целого типа. Создать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2010, 14:33
Привет! Вот еще темы с ответами:

Дружественные классы - C++
Есть два класса. первый - основной, в нем все нужные поля. второй, в нем должен быть некий метот который должен использовать поле основного...

Шаблонные дружественные классы - C++
Походу с шаблоном разбираюсь, Node* стала приватным в моем классе-итераторе. #include &lt;iostream&gt; template&lt;class T&gt; class iterator; ...

Классы.Дружественные функции - C++
Пример с книги &quot;Visual CPP 6 - Руководство Разработчика&quot;. Тема: &quot;Классы.Дружественные ф-ции&quot;. Исправте ошибки и рассказыте более подробнее...

Дружественные функции и классы - C++
Доброго времени суток ! Может у кого - нибудь есть похожие исходники или мысли по поводу данного задания ?! Помогите пожалуйста ! ...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru