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

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

Войти
Регистрация
Восстановить пароль
 
viktor_21
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
#1

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

27.11.2013, 06:01. Просмотров 816. Ответов 2
Метки нет (Все метки)

// 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?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2013, 06:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись в массив объекты класса (vector) (C++):

Vector ссылок на объекты класса - C++
У меня есть свой класс объекта. И при создании новых экземпляров данного объекта, мне нужно чтобы в vector заносилась ссылка на него...

Поместить в динамически расширяемый массив объекты класса, производные от базового абстрактного класса - C++
Помогите пожалуйста новичку! (мне). Я хочу создать динамически расширяющийся массив указателей на базовый абстрактный класс,...

Динамический массив указателей на объекты класса - C++
Добрый вечер! Нужна помощь У меня имеется класс STROKA(вроде уже готовый,и все хорошо) Только вот никак не могу понять, как создать...

Реализовать шаблон класса vector, реализующий динамический массив - C++
Реализовать шаблон класса vector, реализующий динамический массив. Определить 2 объекта класса vector и внешнюю функцию, выполняющую...

Как корректно скопировать vector в vector внутри класса - C++
Есть класс принимающий в конструкторе vector: class test { test(std::vector&lt;std::string&gt; codeList); ~test(); ...

Можно ли динамически выделить память под массив указателей, на объекты класса? - C++
Прошу прощения если не правильно назвал вопрос. Не знаю как правильно сформулировать. Можно ли строчку VisualizationTools* VT; заменить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
27.11.2013, 08:42 #2
Цитата Сообщение от viktor_21 Посмотреть сообщение
как в массив-vector от класса Директория, передать объекты класса FIle?
Надо создать экземпляр класса файл, выделив тем самым под него память, заполнить его при необходимости и затем добавить в вектор указатель на него.
0
viktor_21
0 / 0 / 0
Регистрация: 27.11.2013
Сообщений: 5
27.11.2013, 18:29  [ТС] #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();
студентам сфу делающим эту лабу привет!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2013, 18:29
Привет! Вот еще темы с ответами:

Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты? - C++
Как объявить массив объектов одного класса в другом классе, а затем поместить в него объекты?

Запись в vector<vector<char>> - C++
Задача такова: Считать с нескольких разных файлов бинарным способом в vector&lt;vector&lt;char&gt;&gt; _data. Затем vector&lt;vector&lt;char&gt;&gt; _data...

Записать числа из файла в двумерный массив или вектор вроде такого vector<vector<int>> - C++
Добрый день, подскажите пожалуйста как лучше и проще считывать файл. в файле записаны числа, разделенные пробелами и запятыми: 1, 2, 3,...

Нюансы синтаксиса: что означает запись vector<int*> a и vector <int>*a ? - C++
Часто встречается вот такая запись: vector&lt;int&gt; a; это понятно что. Массив объектов int А вот что такое vector&lt;int*&gt; a; ...


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

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

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