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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2013, 06:38   #1
vik_21
Новичок
Джуниор
 
Регистрация: 27.11.2013
Сообщений: 1
По умолчанию Запись в массив объекты класса (vector)

Код:
// oop_laba2_2cpp: определяет точку входа для консольного приложения.
//Вариант 6
//Объект – директория.
//
//Включает в себя
//массив
//файлов (имя, расширение, размер).
//
//Методы – Определение свойств класса
//
//Определение размера директории.
 
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <locale>
#include <cstdlib>
#include "windows.h"
#include "vector"
using namespace std;
 
class File
{
private:
        char name_file[20];
        char extension[5];
        double size_file;
public:
        void setName_file(char *pname_file);
        void setSize_file(double psize_file);
        void setExtension(char *pextension);
        void setFileFull(char *pname_file, double psize_file, char *pextension);
 
        char *getName_file();
        char *getExtension();
        double getSize_file();
        File();
};
 
class Directory
{
private:
        char name_dir[20];
        double size_dir;
public:
        void setName_dir(char *pname_dir);     
        char *getName_dir();
        double getSizeDir();
//      File *a;
//      pfile.push_back(a);//?????
        vector<File*> pfiles;// объявление массива указателей File
        void setSize_dir();//функция обращается к массиву объектов, берет у каждого их size_file - через гет сайз файл и суммирует
        Directory();
 
};
 
///////////////////////////////////////////////////// методы File
 
void File:: setName_file (char *pname_file)
{ sprintf_s(name_file,"%s",pname_file) ;}
 
void File:: setSize_file (double psize_file)
{ size_file = psize_file; }
 
void File:: setExtension (char *pextension)
{ sprintf_s(extension,"%s",pextension) ; }
 
void File:: setFileFull (char *pname_file, double psize_file, char *pextension)
{
  sprintf_s(name_file,"%s",pname_file) ;
  size_file = psize_file;
  sprintf_s(extension,"%s",pextension) ;
}
 
char * File:: getName_file()
{
        return name_file;
}
 
char * File:: getExtension()
{
        return extension ;
}
 
double File:: getSize_file()
{
        return size_file ;
}
 
File::File()
{
        sprintf_s(name_file,"%s","пусто") ;
        sprintf_s(extension,"%s","null") ;
        size_file=0;
}
 
///////////////////////////////////////////////////// методы Directory
 
void Directory::setName_dir(char *pname_dir)
{
        sprintf_s(name_dir,"%s",pname_dir) ;
}
 
char * Directory::getName_dir()
{
        return name_dir;
}
 
double Directory::getSizeDir()
{
        return size_dir;
}
 
void Directory::setSize_dir()
{
        for (int i = 0; i < length; i++)///????
        {
                pfiles[i]=
        }
 
        //суммировать все файлы по size_file из класса file и записть это в size_dir
        for (int i = 0; i < pfiles.size() ; i++)
        {
                size_dir += pfiles[i]->getSize_file(); 
        }
 
}
 
 
Directory::Directory()
{
        sprintf_s(name_dir,"%s","пусто") ;
        size_dir=0;
}
По заданию в size_dir объекта класса директория, должна записаться сумма size_file объектов класса файл. нужно это сделать через массив файлов, там где //???? это тот кусок кода отвечающий за это. подскажите пожалуйста как в массив-vector от класса Директория, передать объекты класса FIle?

все сделал.
в класс директория добавил
vector<File> pfiles;
void addfile(File ffiles);
потом
void Directory::addfile(File ffiles )
{
pfiles.push_back(ffiles);
size_dir += ffiles.getSize_file();
}

и в функции main
dir.addfile(file1);
dir.addfile(file2);
cout<< dir.getSizeDir();
студентам сфу делающим эту лабу привет!

Последний раз редактировалось vik_21; 27.11.2013 в 18:26. Причина: Решил
vik_21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Java!В программе создать одиночные объекты и массив объектов класса и вызвать методы. Andros96 Помощь студентам 0 17.11.2013 15:41
Как создать метод класса, возвращающий объекты (поля класса) разных типов frosich Общие вопросы Delphi 3 01.03.2013 19:29
vector в деструкторе класса wowhow Общие вопросы C/C++ 4 16.11.2012 14:32
объекты класса и динамические массивы alex_alpha Общие вопросы C/C++ 14 11.06.2010 01:32
Реалирация подсчёта ссылок на объекты класса подобно объектом интерфейса Altera Общие вопросы Delphi 2 26.05.2010 23:17