Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
#1

Передача указателя на файл в метод - C++

16.10.2012, 22:17. Просмотров 642. Ответов 9
Метки нет (Все метки)

Доброго вечера всем. Такая проблема: C++ Builder ругается на строку в описании класса, пример под катом
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
class OwnThing
{
        char    *title;
        char    *type;
        int     age;
        float   weight;
public:
                OwnThing();
                OwnThing(char*, char*, int, float);
                OwnThing(OwnThing&);
                OwnThing(char*);
virtual         ~OwnThing();
        void    SetTitle(char*);
        char*   GetTitle();
        void    SetType(char*);
        char*   GetType();
        void    SetAge(int);
        int     GetAge();
        void    SetWeight(float);
        float   GetWeight();
virtual void    Output();
virtual void    Input();
virtual void    SaveToFile(FILE*);    //вот в этих строках
virtual void    LoadFromFile(FILE*);  //ругается, ошибка после FILE*: ')' expected 
};
Метод должен записать(считать) текущий объект в файл, открытый заранее и переданный в этот метод.
С любыми другими типами проходит, только не с этим. Наверно, слона-то я и не заметил, подтолкните к ответу, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 22:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача указателя на файл в метод (C++):

Передача указателя на метод в функцию - C++
Подскажите плиз. Есть некий класс и в нём метод: ... DWORD WINAPI func(LPVOID lParam) { ... return 1; } ...

Передача в метод по перегрузке оператора указателя на объект - C++
У нас есть массив указателей на базовый класс STRING **ptr = new STRING* ; for (int i = 0; i<size; ++i) { ...

Как сделать функцию от указателя на класс и указателя на метод? - C++
Не получается сделать функцию, параметрами которой являются указатель на класс и на метод. Обращаться к классу нужно именно по указателю,...

передача указателя - C++
какой способ передачи указателя наиболее быстрый? int a = 1; int *b= &a; wav.set_windows((int*) b); или int a = 1; ...

Передача указателя - C++
Здравствуйте! Форумчане, очень нужна помощь..:cry: В общем ситуация такова: написана программа, нужно переделать её так, чтобы в...

Передача указателя на функцию - C++
Доброго дня Форумчане. Хотелось бы узнать как вызывать функцию получив на нее указатель? пример class C1 { public: void...

9
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.10.2012, 23:28 #2
Цитата Сообщение от alex.gorbach Посмотреть сообщение
C++ Builder ругается на строку в описании класса
C++
1
#include <cstdio>
и вообще зачем использовать с++ вместе с си-шной конструкцией? чем вам не нравится istream?

Добавлено через 1 минуту
C++
1
virtual void    LoadFromFile(istream& in);
теперь можно хоть с клавиатуры считывать, хоть с файла или еще какого-нибудь потока

Добавлено через 1 минуту
А еще лучше сделать так
C++
1
virtual void    LoadFromFile(string& filename);
а уже в методе открыть файл и загрузить данные
0
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
16.10.2012, 23:30  [ТС] #3
panicwassano, на плюсплюс с Си недавно перешел, вот и использую, как привык. Попробую с входным потоком, как вы сказали. Насчет передачи имени файла - я думал, но если в цикле 100 объектов записывать, не будет ли грузнее 100 раз открывать-закрывать файл?
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.10.2012, 23:35 #4
а зачем вам 100 объектам открывать один и тотже файл, где здесь логика?
0
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
16.10.2012, 23:37  [ТС] #5
panicwassano, мне нужно записать в один файл объект класса-коллекции объектов этого класса.
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
16.10.2012, 23:42 #6
как вариант для файла написать обертку в виде синглтона и вызывать в каждом объекте

Добавлено через 11 секунд
ну либо просто ссылку на открытый поток передайте
0
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
17.10.2012, 00:07  [ТС] #7
panicwassano, сделал, как вы сказали, через входной поток ifstream, ошибка в том же месте, та же:
C++
1
2
3
4
...
virtual void    SaveToFile(ifstream&);
virtual void    LoadFromFile(ofstream&);
...
0
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,200
Завершенные тесты: 1
17.10.2012, 00:16 #8
iostream или iosfwd подключил?

Добавлено через 1 минуту
Да, и они ещё пространстве имён std.
0
alex.gorbach
0 / 0 / 0
Регистрация: 08.09.2012
Сообщений: 35
17.10.2012, 00:18  [ТС] #9
Somebody, fstream подключил, неймспейс тоже. Та же ерунда. Да и ругается не на неизвестный идентификатор, а хочет закрыть скобку пораньше моего.
0
panicwassano
592 / 560 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
17.10.2012, 11:42 #10
alex.gorbach, как пример, сами подправьте под свое
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
using namespace std;
 
class OwnThing
{
public:
    void    SaveToFile(istream& in);
    void    LoadFromFile(istream& in){
        in >> i;
    };
private:
    int i;
};
 
int main(){
    OwnThing own;
    own.LoadFromFile(cin);
    
    return 0;
}
0
17.10.2012, 11:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2012, 11:42
Привет! Вот еще темы с ответами:

Передача указателя в функцию - C++
Здравствуйте. Прошу помощи, сижу уже пару часов читаю мануалы, но так и не смог до конца понять, что мне делать. Есть вот такой код: ...

Передача двойного указателя - C++
Написал прогу которая работает с односвязным списком. При передаче в функцию двойного указателя, я его теряю. Смотрел в дебаггером -...

Передача указателя в функцию - C++
Поиском не пользовался, возможно данный вопрос уже проскакивал. Проблема том, что VS2010 на отрез отказывается передавать указатель на...

Передача в функцию указателя - C++
Почему плохо передавать в функцию указатель на строку или массив и возвращать указатель на строку или массив?


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

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

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