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

Запись в массив объекты класса (vector) - C++

Восстановить пароль Регистрация
 
viktor_21
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
27.11.2013, 06:01     Запись в массив объекты класса (vector) #1
// oop_laba2_2cpp: определяет точку входа для консольного приложения.
//Вариант 6
//Объект – директория.
//
//Включает в себя
//массив
//файлов (имя, расширение, размер).
//
//Методы – Определение свойств класса
//
//Определение размера директории.
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#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;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale( LC_ALL,"Russian" );
    
 
    Directory dir; 
    dir.setName_dir("Disk_C");
 
    File file1,file2;
    file1.setFileFull("game" ,10,"exe");
    file2.setFileFull("laba5" ,4, "doc");
 
    
    
    dir.setSize_dir();//чудесная функция подсчета size_file всех объектов и записи этого значения в size_dir
    //cout << dir.getSizeDir();
        
    system("pause");
    return 0;
}
По заданию в size_dir из касса директории, должна записаться сумма size_file класса файл. нужно это сделать через массив файлов, там где //???? это тот кусок кода отвечающий за это. подскажите пожалуйста как в массив-vector от класса Директория, передать объекты класса FIle?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2013, 06:01     Запись в массив объекты класса (vector)
Посмотрите здесь:

Функция создает объекты и указателями на них заполняет массив. При выходе из функции вызываются деструкторы объектов. Как сохранить объекты? C++
C++ Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты?
C++ Записать числа из файла в двумерный массив или вектор вроде такого vector<vector<int>>
C++ Запись в vector<vector<char>>
Шаблонный класс vector. Найти объекты с названием, начинающимся на символ и со значением больше value C++
C++ Реализовать шаблон класса vector, реализующий динамический массив
Как корректно скопировать vector в vector внутри класса C++
C++ Классы и объекты в С++, компонента класса и экземпляр класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5549 / 2563 / 233
Регистрация: 01.11.2011
Сообщений: 6,337
Завершенные тесты: 1
27.11.2013, 08:42     Запись в массив объекты класса (vector) #2
Цитата Сообщение от viktor_21 Посмотреть сообщение
как в массив-vector от класса Директория, передать объекты класса FIle?
Надо создать экземпляр класса файл, выделив тем самым под него память, заполнить его при необходимости и затем добавить в вектор указатель на него.
viktor_21
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
27.11.2013, 18:29  [ТС]     Запись в массив объекты класса (vector) #3
все сделал.
в класс директория добавил
C++
1
2
vector<File> pfiles;
void addfile(File ffiles);
потом
C++
1
2
3
4
5
void Directory::addfile(File ffiles )
{
    pfiles.push_back(ffiles);
    size_dir += ffiles.getSize_file();  
}
и в функции main
C++
1
2
3
dir.addfile(file1);
dir.addfile(file2);
cout<< dir.getSizeDir();
студентам сфу делающим эту лабу привет!
Yandex
Объявления
27.11.2013, 18:29     Запись в массив объекты класса (vector)
Ответ Создать тему
Опции темы

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