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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2010, 17:11   #1
Serjuk
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 136
По умолчанию создание объектов класса

Здравствуйте.Есть класс в файле test.h он может быть произвольным - т.е. неизвестно количество функций и свойств.но известно что там все функции представленый парой методов get/set.а свойства представлены переменными разных типов int g,char a и тд...Собственно надо написать функцию которая будет создавать объекты этого класса присваивая функциям /переменным значения
то,что количество функций в хидере не определено и вызывает у меня затруднение.

Все,что я пока смог написать:
Код:
#include "test.h"
#include <iostream.h>
main(){
/ Создание объекта
create ();

}

int create (){
FILE* input=0; //инициализируем input и output перед использованием нулем
input = fopen(test.h, "r");  //  пытаемся открыть его

	if(input == 0) {               // если не получилось
	printf("ошибка - не получается открыть файл.\n");
	}
	test A;
	a= new test [n];
	for (int i =1;i<n;i++)
	{
	//здесь я не могу придумать как считать построчно файл,и вставить значения....например если есть get/set Volume () то после обработки будет get/setVolume(3)..

}
    }
Serjuk вне форума Ответить с цитированием
Старый 11.05.2010, 11:14   #2
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию

почитай как правильно описывать классы, методы, вызывать их и т.д.
ArniLand вне форума Ответить с цитированием
Старый 11.05.2010, 16:26   #3
Serjuk
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 136
По умолчанию

я знаю как описывать классы,вызывать методы, но в этом случае структура класса неопределена и ее как то надо сканировать,т.е чтобы программа создавала объекты под любой класс, а как я не знаю...поэтому и прошу помощи..
Serjuk вне форума Ответить с цитированием
Старый 11.05.2010, 16:33   #4
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Цитата:
Сообщение от Serjuk Посмотреть сообщение
я знаю как описывать классы,вызывать методы, но в этом случае структура класса неопределена и ее как то надо сканировать,т.е чтобы программа создавала объекты под любой класс, а как я не знаю...поэтому и прошу помощи..
Тут два варианта, либо вы неправильно поняли задание и не рассказали нам всех подробностей. Либо оно глупо чуть менее чем полностью.
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 11.05.2010, 16:55   #5
Serjuk
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 136
По умолчанию

задание такое :
Нужно создать приложение которое имеет возможность:
создания объектов
сохранение в файл
удаление из файла по id
На входе есть любой класс - описанный в test.h
На выходе : приложение которое может создавать объекты класса который хранится в test.h и сохранять их структурно в файл в виде:
Цитата:
1. id = 1
public:
int getS(3);
int setS(3);
float length = 10.5;
int a = 4;
private:
char str = "Какая-то строка 1";
protected:
<none>
2.id=2
.......
программа примерно имеет вид:
Код:
#include"test.h"
int main(int argc, char** argv) {
// объявляем объект класса test
test t;
// объявляем указатель на объект класса test
test *ptrt;
// идентификатор объекта
int id;
// переменная под хранение кода ошибки
int errno;
/************************************************************/
// Создание объекта
t = new_obj(id);
/**
* как результат:
* - идентификатор t ссылается
на объект класса test
*
* - id сожержит значение идентификатора
объекта в файле
*
*/
// Проверяем
errno = get_errno();
/**
* errno - содержит код возврата, если
- 0, то все хорошо
*
- >0, то возникла ошибка
*
*/
//Сохраняем изменения
save(id, t);
// Проверяем
errno = get_errno();
/**
* errno - содержит код возврата, если
- 0, то все хорошо
*
- >0, то возникла ошибка
*
*/

//удаляем объект из файла по id
remove(id);
// Проверяем
errno = get_errno();
/**
* errno - содержит код возврата, если
- 0, то все хорошо
*
- >0, то возникла ошибка
*
*/
Serjuk вне форума Ответить с цитированием
Старый 11.05.2010, 16:58   #6
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

В твоем задании скорее всего имеется ввиду перегрузка методов класса, на получение значений и их изменение...
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 12.05.2010, 20:23   #7
Serjuk
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 136
По умолчанию

поподробней)))задание выше выложил)
Serjuk вне форума Ответить с цитированием
Старый 13.05.2010, 08:08   #8
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Цитата:
Поподробней
Знать класс ты должен в любом случае, и данные файла тоже. Далее, читаешь из файла по одному слову, если это слово оказывается целым числом, преобразуешь строку в целое, вызываешь метод Set(int). Аналогично для всех остальных типов, просто нужно знать какой тип ты прочитаешь...
Не зная структуру класса, ты не будешь знать что туда записывать...возможна ситуация, что тебе нужно будет вызвать метод Set(char*, float) например
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 13.05.2010, 18:54   #9
Serjuk
Форумчанин
 
Регистрация: 06.08.2009
Сообщений: 136
По умолчанию

мысль в том,что класс будет выглядить структурно всегда так :
Код:
  class some {
        private:
            int val;
...методы get/set ...       
 }
т.е. Заголовочный файл содержит строго по одному описательному элементу на строку
А реализацию собственно не обязательно знать..Надо просто читать строки из файла..и присваивать любые значения и любое количество формальных параметров для функций.
т.е. например для объекта id=1
можно
int a=4;
getM(4,5);
setM(4,5);
а для объекта id=2
int a=5;
getM(4);
setM(4);
т.е. получается как база данных
Serjuk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Коллекция объектов класса в С++ MarihuanaP Помощь студентам 2 09.05.2010 13:06
Создание объектов класса в цикле Formdet Общие вопросы .NET 4 23.04.2010 21:43
Помогите! Вообще не понимаю....Создать несколько объектов a, b и с разработанного класса irass Общие вопросы C/C++ 1 03.11.2009 18:39
Проекция файла и запись/чтение объектов класса в C++ sd13 Помощь студентам 26 25.05.2008 12:05
Динамическое создание объектов LepihinMS Общие вопросы Delphi 18 05.07.2007 23:31