Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2015, 18:51   #1
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию Вызвать функцию(с++)

Здравствуйте,объясните пожалуйста как вызвать функцию с другого класса
Код:
class hospital
{
private:
	std::string Name_Doctor;
	std::string Qualification;
	std::string Patient_Name[N];
	short Date[3];
	short Cabinet;
	short Time[2];
public:
	friend class vector;
	hospital();
	friend std::ostream & operator << (std::ostream &ost, hospital &h);
    //bool operator += (void);
	void split (char*);
};
Код:
void hospital::split(char *base)
{
	char* p, *p1 = NULL;
	int i = 0;
	p = strtok_s(base, " ", &p1);
	Name_Doctor = std::string((const char*)p);
	p = strtok_s(NULL, " ", &p1);
	Qualification = std::string((const char*)p);
	p = strtok_s(NULL, " ", &p1);
	Cabinet = atoi((const char *)p);
	for (; i < 3; ++i) {
		p = strtok_s(NULL, ". ", &p1);
		Date[i] = atoi((const char *)p);
	}
}
Код:
class vector
{
private:
	hospital Base[M];
public:
	friend std::ostream & operator << (std::ostream &ost, vector &v);
	void split(hospital &h, char *);
};
void vector::split(hospital &h ,char * base)
{
	for (int i = 0; i < M; i++)
		h.split(base);

}
ту что "split"
Sterben вне форума Ответить с цитированием
Старый 28.09.2015, 18:57   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
for (int i = 0; i < M; i++)
		h.split(base[i].Qualification.c_str());
Это для начала.

А для кончала вопрос: А почему тебе везде не использовать тип string? Зачем нужен char* ?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2015, 19:00   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Sterben Посмотреть сообщение
Здравствуйте,объясните пожалуйста как вызвать функцию с другого класса
................................... .......
ту что "split"
Да когда уже студенты научатся задавать вопросы правильно? Блин, где этот split? К чему он привязан? Зачем он вообще?
Хоть цветом проблемный участок выделите, если толку на большее не хватает.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.09.2015, 19:00   #4
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
for (int i = 0; i < M; i++)
		h.split(base[i].Qualification.c_str());
Это для начала.

А для кончала вопрос: А почему тебе везде не использовать тип string? Зачем нужен char* ?
разве можно разбивать strtok'ом тип string?(не проверял просто)
Sterben вне форума Ответить с цитированием
Старый 28.09.2015, 19:06   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это для начала. А для кончала
Тут по-ходу вопрос вызова класса из класса. Сделать это можно, но не такими лобовыми методами. Нужно сделать наследование одного класса от другого. Потом, можно творить с наследуемым, чё душе заблогорассудится.
Цитата:
Сообщение от Sterben Посмотреть сообщение
разве можно разбивать strtok'ом тип string?(не проверял просто)
Да, в Си++ всё можно. Вопрос в другом, нужно-ли изобретать велосипед?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 28.09.2015 в 19:14.
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.09.2015, 19:27   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
разве можно разбивать strtok'ом тип string?
А разве для string нет других способов разворота в массив слов?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2015, 19:40   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А разве для string нет других способов разворота в массив слов?
Есть. StringList(strings). Но, нужно создать шаблон листа. Переопределение типов. Вот, не помню в какой библиотеке. На вскидку, похоже в windows.h, но не факт.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 28.09.2015, 20:27   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

StringList это Билдер, а не стандартный C++. И даже там проще/удобнее StringReplace.
А каким образом вам тут WinApi из windows.h поможет вообще непонятно.

Цитата:
А разве для string нет других способов разворота в массив слов?
Простого способа типа .split(' ') вроде нет. А так можно конечно, тут например много разных чисто С++ вариантов перечислено http://stackoverflow.com/questions/2...-a-string-in-c
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.09.2015, 20:29   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
StringList(strings)
Это в билдере.
Весь вопрос зачем нужно сплитование. Вот хочется услышать от ТС что именно он хочет сделать этой функцией и зачем.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.09.2015, 20:34   #10
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Это в билдере.
Весь вопрос зачем нужно сплитование. Вот хочется услышать от ТС что именно он хочет сделать этой функцией и зачем.
А я в другие среды и не лезу. Мне и дебилдера хватает за глаза .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать функцию.. Аделинкка Общие вопросы Delphi 10 21.12.2012 10:47
Як вызвать функцию из dll в C# ? Dr.Pauliss Помощь студентам 5 26.09.2011 12:42
Не могу вызвать функцию (( NewKoder Общие вопросы C/C++ 4 11.12.2009 17:26
Вызвать функцию ассемблера из С++ Dima88 Помощь студентам 3 11.12.2009 00:54
Как вызвать функцию? blackstersl Общие вопросы Delphi 10 07.06.2009 19:22