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

Наследование - C++

Восстановить пароль Регистрация
 
Whiskey
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 9
19.03.2011, 22:44     Наследование #1
Прошу помочь реализовть программу.
Задание на русском:
Разработать класс CFile,который инкапсулирует в себя такие функции работы с файлами как Open, Close, Seek, Read, Write, GetPosition и GetLength. На базе этого класса создать производный класс CMyDataFile - файл ,который содержит данные некоторого определенного типа MyData,а такде заголовок, который облегчает доступ к этому файлу.
Заранее благодарен за оказанное внимание и помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2011, 22:44     Наследование
Посмотрите здесь:

C++ Наследование
Наследование C++
C++ наследование
C++ Наследование?!
C++ наследование
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
20.03.2011, 08:34     Наследование #2
осталось немного доработать
h-файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef FILE_2_H
#define FILE_2_H
#include<fstream>
class BF {
    public:
    virtual void myopen(char *)=0;
    virtual void myclose()=0;
    virtual void myseek(int)=0;
    //virtual void myread()=0;
    //virtual void mywrite()=0;
};
class MF:public BF {
    private:
    ifstream fout;
    public:
    virtual void myopen(char *);
    virtual void myclose();
    virtual void myseek(int);
    long mypos();
    //virtual void myread();
    //virtual void mywrite();
};
#endif
файл реализации
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
#include<iostream>
#include"File2.h"
using namespace std;
  void MF::myopen(char *str){
    fout.open(str,ios_base::in);
  }
  void MF::myclose() {
   fout.close();
  }
  void MF::myseek(int x) {
  fout.seekg(x,ios_base::beg);
  char ch=fout.get();
  cout<<ch;
  }
  long MF::mypos() {
      long c=fout.tellg();
      return c;
  }
  /*void MF::myread() {
 
  }
  void MF::mywrite() {
 
  } */
главный файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
#include"File2.h"
using namespace std;
int main() {
    MF obj;
    obj.myopen("test.txt");
    obj.myseek(4);
    long x=obj.mypos();
    cout<<endl<<x;
    obj.myclose();
    cin.get();
    return (0);
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.03.2011, 08:36     Наследование #3
Whiskey, Мне кажется тут лучше использовать включение (делегирование)... В задании точно про наследование сказано?
Whiskey
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 9
20.03.2011, 10:06  [ТС]     Наследование #4
Да, к сожалению.В задании точно скзано что нужно использовать наследование.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.03.2011, 11:16     Наследование #5
Хотя нет. Скорее всего я не прав... Ибо тут все же наследование лучше я думаю... Отношения ЯВЛЯЕТСЯ...
Yandex
Объявления
20.03.2011, 11:16     Наследование
Ответ Создать тему
Опции темы

Текущее время: 08:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru