powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как занести список в контейнер?
4 сообщений из 4, страница 1 из 1
Как занести список в контейнер?
    #38644228
nick95nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется класс, в котором представлены различные данные о фирмах (адреса, телефоны, район итд). Также существует поле для списка услуг, которых всегда обязательно несколько. Сейчас в головной программе я просто прописываю их через \n, но мне необходимо создать контейнер для поля "Услуги". Но я не совсем понял как это должно выглядеть. Как контейнер выглядит в перечислении полей класса и как с ним работать в данном случае?

Код: plaintext
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.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
#if !defined _ADV_
#define _ADV_

#include <iostream>
#include "conio.h"
#include <string>
#include <iomanip>

using namespace std;

enum HEADING{ NONE, ShoesRepair, WorkshopCars, CreativeWorkshops };
string HeadName[] = { "ShoesRepair", "WorkshopCars", "CreativeWorkshops"};

class Advertisment{
	HEADING Rubric;
	string Area, Address, Services;
	string Phone;
public:
	Advertisment(HEADING Rubric, char* Area, char* Address,  char* Services, char* Phone);
	Advertisment(const Advertisment&);
	~Advertisment(void);
	Advertisment& operator=(Advertisment &ad);
	bool operator==(Advertisment &ad);
	bool operator!=(Advertisment &ad);
	friend ostream& operator<<(ostream&, Advertisment&);
	string* StringMember(char* Name);
	HEADING* Advertisment::HeadingMember(char* Name);
	void Correct(HEADING Rubric, char* Area, char* Address, char* Services, char* Phone);
};

Advertisment::Advertisment(HEADING head = NONE, char* text = "", char* adr = "", char* serv = "", char* phone = ""):
	Rubric(head), Area(text), Address(adr), Services(serv), Phone(phone)
	{}

Advertisment::Advertisment(const Advertisment &ad){
	Rubric = ad.Rubric;
	Area = ad.Area;
	Address = ad.Address;
	Services = ad.Services;
	Phone = ad.Phone;
}

Advertisment::~Advertisment(void){}

Advertisment& Advertisment::operator=(Advertisment &ad){
	Rubric = ad.Rubric;
	Area = ad.Area;
	Address = ad.Address;
	Services = ad.Services;
	Phone = ad.Phone;
	return *this;
}

bool Advertisment::operator == (Advertisment &ad){
	if (Rubric == ad.Rubric && Area == ad.Area && Address == ad.Address && Services == ad.Services && Phone == ad.Phone)
		return true;
	else return false;
}

bool Advertisment::operator != (Advertisment &ad){
	if (*this == ad) return false;
	else return true;
}

ostream& operator<<(ostream &c, Advertisment &ad){
	c << "------Advertising Workshops------\n\n" 
		<< " Rubric:      ";
	switch (ad.Rubric){
	case ShoesRepair: c << setw(18) << HeadName[0]; break;
	case WorkshopCars : c << setw(18) << HeadName[1]; break;
	case CreativeWorkshops:   c << setw(19) << HeadName[2]; break;
	}
	c << "\n" << " Area: " << setw(26) << ad.Area << "\n";
	c << " Adress: " << setw(24) << ad.Address << "\n";
	c << " Services: " << setw(23) << ad.Services << "\n";
	c << " Phone: "  << setw(25) << ad.Phone << "\n";
	c << "---------------------------------\n";
	return c;
}



void Advertisment::Correct(HEADING head, char* text, char* adr, char* serv, char* phone)
{
	if (head)
		Rubric = head;
	if (strcmp(text, " -"))
		Area = string(text);
	if (strcmp(adr, "-"))
		Address = string(adr);
	if (strcmp(serv, "-"))
		Services = string(serv);
	if (strcmp(phone, "-"))
		Phone = string(phone);

}

string* Advertisment::StringMember(char* Name){
	if (!strcmp(Name, "Area"))
		return &Area;
	if (!strcmp(Name, "Address"))
		return &Address;
	if (!strcmp(Name, "Services"))
		return &Services;
	if (!strcmp(Name, "Phone"))
		return &Phone;
	return NULL;
}

HEADING* Advertisment::HeadingMember(char* Name){
	if (!strcmp(Name, "Rubric"))
		return &Rubric;
	return NULL;
}

#endif
...
Рейтинг: 0 / 0
Как занести список в контейнер?
    #38644240
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nick95nickКак контейнер выглядит в перечислении полей класса и как с ним работать в
данном случае?
Точно так же как и в любом другом месте: array<AnyType> var;
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как занести список в контейнер?
    #38644392
locked
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nick95nick,

Я бы держал все это хозяйство в Property Tree . Включая все то что у тебя уже есть.
...
Рейтинг: 0 / 0
Как занести список в контейнер?
    #38644609
nick95nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выходит что придется вводить в каждой функции цикл, или достаточно будет просто прописать перед Services array?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как занести список в контейнер?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]