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

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

Войти
Регистрация
Восстановить пароль
 
vladiktankonlin
1 / 1 / 1
Регистрация: 30.01.2016
Сообщений: 19
#1

C++, динамические переменные, нужен совет - C++

23.05.2016, 23:27. Просмотров 234. Ответов 1
Метки c++ (Все метки)

Здравствуйте, прошу вашей помощи! Я никак не могу разобраться, где нужно использовать динамические переменные, а где статические. В итоге пихаю динамические переменные куда попало и имею кучу проблем. Например: создаю
C++
1
MatRepeats *ob = new MatRepeats;
и к элементам структуры приходится обращаться по-китайски:
C++
1
*ob->name = "pl228"; *ob->repeats = 3;
Помогите, пожалуйста, разобраться с использованием статических и динамических переменных. Вот пример моего кода. Только скелет класса, который описывает метеорит:
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
#include <string>
#include <vector>
 
using std::string;
using std::vector;
 
int main()
{
    getchar();
    return 0;
}
 
// Описывает количество повторений материала в метеоритах. Упало три метиорита из плутония228,
// => создаем объект mat типа MatRepeats; *mat->name = "плутоний228", *mat->repeats = 3;
struct MatRepeats   
{
    string *name = new string("");
    int *repeats = new int(0);
    ~MatRepeats()
    {
        delete name;
        delete repeats;
    }
};
 
struct Material //Описывает свойства материала
{
    string *name = new string("");
    int *density = new int(0); // Density - на русском "плотность"
 
    ~Material()
    {
        delete name;
        delete density;
    }
};
 
class Meteorite
{
private:
    int *orderNum = new int(0); // Номер метеорита по порядку, назначается при создании экземпляра класса
    string *name = new string(""); // Имя метеорита
    Material *material = new Material; // Его материал
    double *speed = new double(0); // Скорость падения
    double *angle = new double(0); // Угол падения
    double *crater = new double(0); // РАДИУС кратера
 
public:
    static int *copyAmount; // Кол-во инициализаций объектов типа Meteorite. Переменная инициализируется в хедере, т.к.
                            // при инициализации в классе компилятор ругается
    static vector<MatRepeats> *repeatsVec; // Вектор, содержащий объекты MatRepeats
 
    //Структура для инициализвации параметров метеорита
    Meteorite(int *orderNum1, string *name, Material *material, double *speed, double *angle, double *crater) 
        : orderNum(orderNum1), name(name), material(material), speed(speed), angle(angle), crater(crater) {};
 
    //Деструктор
    ~Meteorite()
    {
        delete orderNum;
        delete name;
        delete material;
        delete speed;
        delete angle;
        delete crater;
    }
 
};
Подскажите, нужен ли в данном случае деструктор, нужны ли в структуре и классе динамические переменные, можно ли в подобных случаях пользоваться статическими переменными?
Ну и тыкните носом в ошибки, пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2016, 23:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос C++, динамические переменные, нужен совет (C++):

Динамические (или не динамические.) переменные! - C++
УважаемыЕ! Есть вопрос. Вот код программы (ТЗ метод северо-западного угла) - под спойлером. А вот ее маленький кусок,задача которого в том,...

Динамические переменные - C++
#include&lt;iostream&gt; using namespace std; int main() { int *ptr_number = new int; int *sum = new int(0); cin &gt;&gt;...

динамические переменные - C++
1. Составьте программу, в которой 8-10 переменных разной длины, например, строки символов, размещаются в ДРП, причем размещение чередуется...

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

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

Как выделить память под динамические переменные при создании класса? - C++
В прошлой теме ответ получил, но не до конца. Вопрос такой, как выделить память под динамические переменные? Вот часть кода ...

1
rikimaru2013
C++ Game Dev
2471 / 1140 / 241
Регистрация: 30.11.2013
Сообщений: 3,709
24.05.2016, 02:01 #2
Композиция/Агрегация

Как правило так называемое вами "динамическое" создание используется в качестве агрегации связи между классами. Так же отмечу PIML c++
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.05.2016, 02:01
Привет! Вот еще темы с ответами:

Нужен совет - C++
Всем добрый день. Кто нибудь может поделиться компилятором Турбо Си++ или каким нибудь другим ...? Или подсказать где можно...

Нужен совет: - C++
я учусь в 2-ом курсе на программиста у меня есть базовые знание c++,STL до сих пор работал только с консолью,опыта нету что дальше...

нужен совет!!! - C++
блин скачала еле как этот си...dev c++....ввожу программу и нажимаю компелировать...он компелирует видимо и ничего не выдает...кроме того...

Нужен совет - C++
Вообщем написал программу, вкратце : сущ-ет класс человек, а классы менеджер, рабочий и ученый наследуют его св-ва. Нужно обратиться к...


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

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

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