Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ динамич. структуры данных https://www.cyberforum.ru/ cpp-beginners/ thread111497.html
В файловой системе каталог файлов организован в виде линейного списка. Для каждого файла в каталоге содержатся след. сведения: 1. имя файла 2. дата создания 3. количество обращений к файлу Написать программу, которая обеспечивает * начальное формирование каталога файлов * вывод каталога * удаление файлов, дата создания которых меньше заданной * выборку файла с наибольшим количеством...
Обратный перевод в восьмиричную систему C++
Целое положительное число m записывается в восьмеричной системе счисления, и разряды в этой записи переставляются в обратном порядке. Получившееся число принимается за значение функции F(m). Например, m=477, F(m)=351. Помогите зделать пожалуйста, на форуме искал, не нашёл прогу перевода в 8ю, может искал плохо...а дальше вообще не могу понять что и как. Объясните пожалуйста. Добавлено через...
C++ Задание по функциям https://www.cyberforum.ru/ cpp-beginners/ thread111465.html
Написать программу, которая определяет сумму n-значных чисел, которые содержат только не парные цифры. Определить так же, сколько парных цифр в найденной сумме. короче я ввожу с клавиатуры число, это значит сколько цифр в числе, и мы их перебираем и ищем сумму... например если вводим число 3, то перебираем и ищем сумму чисел с непарными цифрами в диапазоне от 100 до 999 помогите решить...
C++ Калькулятор на С++ нужен калькулятор из 10-13 операций... На С++ ... Плиз.. описание на сколько можно просто... В граф оболочке... На курсовую... https://www.cyberforum.ru/ cpp-beginners/ thread111452.html
Поиск с использованием ряда Фибоначчи C++
Помогите, пожалуйста в предоставлении алгоритма. Весь интернет облазил - ничего нету. Хотя я уверен, что такой поиск существует. Извиняюсь за ошибку в названии темы.
C++ первый пробел в строке https://www.cyberforum.ru/ cpp-beginners/ thread111443.html
вообщем проблема есть текст – некоторое количество строк. 1)Сжать строки текста удалением левых, правых пробелов и заменой одним пробелом групп внутренних последовательных пробелов. 2)Сжатые строки отсортировать по убыванию средней длины их слов вот то что есть #include <iostream> #include <locale> #include <string>
C++ Вопрос: Как запустить дизассемблер в visual studio 2005? Как запустить дизассемблер в visual studio 2005 ? https://www.cyberforum.ru/ cpp-beginners/ thread111440.html Написать программу, иллюстрирующую, что А*А-1=Е. C++
Дана произвольная матрица А. Написать программу, иллюстрирующую, что А*А-1=Е.
C++ Поиск максимума и минимума Уважаемые форумчане помогите с задачей немогу понять как её зделать. Задание:N точек на площаде заданы своими координатами (xi,yi). Определить точку, минимально отдалёную от начала координат. Как её делать даж понятия не имею:cry:. https://www.cyberforum.ru/ cpp-beginners/ thread111384.html C++ Функция outtext! Пытаюсь вывести в графическом режиме цыфри, а получаю иероглифы!! Буквы выводит нормально https://www.cyberforum.ru/ cpp-beginners/ thread111372.html
C++ Описать структуру с именем NOTE
Народ почти не знаю С++ но нужно написать вот прогу желательно на Буилдере 1. Описать структуру с именем NOTE, содержащую следующие поля: - NAME - фамилия, имя; - TELE - номер телефона; - BDAY - день рождения (массив из трёх чисел). 2. Написать программу, выполняющую следующие действия; - ввод с клавиатуры данных в массив BLOCKNOTE состоящий из восьми элементов типа...
C++ с++ . ветвление два корабля, которые находятся на разном расстоянии от совместного порта, плывут одним курсом, но с разной скоростью. циклон движется в том же направлении, но со скоростью, которая превышает скорость обоих кораблей . зная величину скорости каждого корабля( в узлах), скорость движения циклона(км\час) и расстояния к порту назначения, определить количество кораблей, которые прийдут в порт до... https://www.cyberforum.ru/ cpp-beginners/ thread111368.html
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
18.06.2015, 22:23 0

Деструктор класа, ошибка - C++ - Ответ 7779861

18.06.2015, 22:23. Показов 1865. Ответов 15
Метки (Все метки)

Ответ

Цитата Сообщение от pety Посмотреть сообщение
Если не сложно, объясните, что значит
typedef class Vector
рассмотрим код:

C++
1
2
3
4
typedef class Vector
{
 
} Point;
здесь имя класса - Vector.
но у него есть другое имя (псевдоним) - Point

можно делать так:
C++
1
Vector vec;
можно так:
C++
1
Point p;
это будет создание двух экземпляров одного и того же класса.

Добавлено через 21 минуту
Цитата Сообщение от savak Посмотреть сообщение
Проблемы здесь, как я понял в деструкторе класса.
Нарушение правила "трех": если конструктор аллоцирует память по указателю при помощи new, значит требуются так же конструктор копии, и оператор=

лекарство:

http://rextester.com/PNKOC97940

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
#include <iostream>
using namespace std;
 
#include <math.h>
#define PI 3.14159265358979323846264338327950
 
typedef class Vector
{
    size_t n_elements;
    double* x;
 
public:
    template<class T> friend
    std::basic_ostream<T>&
        operator<<(::std::basic_ostream<T>& os, const Vector& obj )
        {
            for(size_t n = 0; n< obj.n_elements; ++n)
                os<< obj.x[n]<<", ";
            return os;
        }
    
public:
    Vector();
    Vector(const double x1, const double y1, const double z1);
    Vector(const size_t n_elem, const double n = 0);
    Vector(const Vector& rhs);
    Vector(Vector&& rhs);
 
   ~Vector() {delete[] x;}
 
    const Vector& operator=(const Vector& rhs);
    const Vector& operator=(Vector&& rhs);
    
    double& operator() (const size_t i);
    double& operator() (const size_t i) const {return x[i];}
 
    size_t Count() const;
 
    double Length() const;      
    Vector Normalize() const;   
} Point;
 
Vector::Vector()
    : n_elements(3)
    , x(new double[n_elements])
{
    for(size_t i = 0; i < n_elements; ++i)
        x[i] = 0;
}
 
Vector::Vector(const double x1, const double y1, const double z1)
    : n_elements(3)
    , x(new double[n_elements])
 
{ x[0] = x1; x[1] = y1; x[2] = z1; }
 
Vector::Vector(const size_t n_elem, const double n)
    : n_elements(n_elem)
    , x(new double[n_elements])
 
{
    for(size_t i = 0; i < n_elements; ++i)
        x[i] =  n;
}
 
Vector::Vector(const Vector& rhs)
    :n_elements(rhs.n_elements)
    ,x(new double[n_elements])
{
    for(size_t i = 0; i < n_elements; ++i)
        x[i] =  rhs.x[i];
}
 
Vector::Vector(Vector&& rhs)
    :n_elements(rhs.n_elements)
    ,x(new double[n_elements])
{
    rhs.n_elements = 0;
    rhs.x=nullptr;
}
 
const Vector& Vector::operator=(const Vector& rhs)
{
    delete[] x;
    n_elements = rhs.n_elements;
    x = new double[n_elements];
    
    for(size_t i = 0; i < n_elements; ++i)
        x[i] =  rhs.x[i];
    return *this;
}
 
const Vector& Vector::operator=(Vector&& rhs)
{
    delete[] x;
    n_elements = rhs.n_elements;
    x = rhs.x;
    
    rhs.n_elements = 0;
    rhs.x=nullptr;
    
    return *this;
}
 
 
double& Vector::operator() (const size_t i)
    { return x[i]; }
 
size_t Vector::Count() const
    { return n_elements; }
 
double Vector::Length() const
{
    double c = 0;
    for(size_t i = 0; i < n_elements; ++i)
        c += x[i]*x[i];
    return sqrt(c);
}
 
Vector Vector::Normalize() const
{
    Vector A = *this;
    for(size_t i = 0; i < n_elements; ++i)
        A.x[i] = A.x[i] / Length();
    return A;
}
 
 
int main()
{
    Point a(1,2,3);
    
    std::cout<<"point: "<< a << std::endl;
    
    a.Normalize();
    
    a = a.Normalize();
    
    Point b( Vector(4,5,6) );
    std::cout<<"point: "<< b << std::endl;
}


Вернуться к обсуждению:
Деструктор класа, ошибка C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2015, 22:23
Готовые ответы и решения:

Почему создается виртуальный деструктор A, а в таблице виртуальных функций лежит деструктор B
Почему я делаю виртуальным деструктор A, а в таблице виртуальных функций лежит деструктор B?

Ошибка при изменениии класа
Здравствуйте! Пишу код &lt;input type=&quot;checkbox&quot; id=&quot;agree&quot;&gt; &lt;button id=&quot;pay_paypal&quot; disabled...

Не вызывается виртуальный деструктор(Ошибка доступа к памяти)
Здравствуйте.Прочитал в одной книге про однокоренную иерархию и решил опробовать. Задача была в...

Не работает деструктор и ошибка при использовании SSE-команд.
Написал класс матрицы, начал писать деструктор - начало вылазить сообщение об ошибке вида...

15
18.06.2015, 22:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2015, 22:23
Помогаю со студенческими работами здесь

9-11 класа
Помогите решить задачи)

к.р. для 11 класа
тесты делать не надо.

Наследование шаблонного класа
Здраствуйте. Помогите пожалуйста. Програма выдает ошибку C2512 и С2614 Я нормально...

Вывод обобщенного класа
Народ, не бейте сильно, если вопрос тупой или сто раз обсуждался, но нужна помощь. В общем, по...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru