Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 1
Регистрация: 02.03.2013
Сообщений: 184
1

Ошибки в реализации класса Vector3D

19.04.2014, 11:30. Показов 858. Ответов 3
Метки нет (Все метки)

Здравствуйте. Помогите дурачку.
Создать класс Vector3D. Реализовать: сложение векторов, скалярное умножение векторов, умножение вектора на скаляр, вывод вектора на экран, конструктор и деструктор для объектов класса, конструктор копирования и оператор присваивания.
Собственно получилось реализовать только стандартные функции set() и get().
P.S. проблема не в математике(наверно), а в том, что mySize всегда 0
Кликните здесь для просмотра всего текста

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
#ifndef VECTOR3D_H
#define VECTOR3D_H
 
class Vector3D
{
private:
    
    size_t mySize;
    int *myDate = new int[mySize];
public:
 
    Vector3D(size_t mySize);
    Vector3D(Vector3D &vector);
    Vector3D();
    ~Vector3D();
 
    void setVector3D(int i, int value);
    int getVector3D(int i);
    size_t getSizeVector3D();
 
    void printVector3D();
 
    void operator = (Vector3D &vector);
 
    void mulVector3D(int variable);
    Vector3D& addVector3D(Vector3D &vector);
    double lenVector3D();
};
#endif

Кликните здесь для просмотра всего текста

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
#include "Vector3D.h"
#include <iostream>
#include <cmath>
 
Vector3D::Vector3D(size_t mySize)
{
    myDate = new int[mySize];
}
 
Vector3D::Vector3D()
{
    mySize = 1;
    myDate = new int[mySize];
}
 
Vector3D::Vector3D(Vector3D &vector)
{
    mySize = vector.mySize;
    myDate = new int[mySize];
 
    for (int i = 0; i < mySize; i++)
    {
        myDate[i] = vector.myDate[i];
    }
 
}
 
void Vector3D::setVector3D(int i, int value)
{
    if (i < 0 || i > mySize - 1)
        return;
 
    myDate[i] = value;
}
 
int Vector3D::getVector3D(int i)
{
    if (i < 0 || i > mySize - 1)
        return -1;
    else 
        return myDate[i];
}
 
size_t Vector3D::getSizeVector3D()
{
    return mySize;
 
}
 
void Vector3D::printVector3D()
{
    
    for (int i = 0; i < mySize; i++)
    {
        std::cout << myDate[i] << " ";
    }
    
    
}
 
void Vector3D::mulVector3D(int variable)
{
 
    for (int i = 0; i < mySize; i++)
    {
        myDate[i] *= variable;
    }
}
double Vector3D::lenVector3D()
{
    if (mySize > 3)
        return -1;
 
    int result = 0;
 
    for (int i = 0; i < mySize; i++)
    {
        result += myDate[i];
    }
 
    double sqrt(result);
 
    return result;
}
void Vector3D::operator=(Vector3D &vector)
{
    mySize = vector.mySize;
    delete [] myDate;
    
    myDate = new int[mySize];
    
    for (size_t i = 0; i < mySize; i++)
    {
        myDate[i] = vector.myDate[i];
    }
}
 
Vector3D::~Vector3D()
{
    delete[] myDate;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2014, 11:30
Ответы с готовыми решениями:

Найти ошибки в реализации класса треуголник на плоскости
Реализовать класс &quot;Треугольник на плоскости&quot;. Поля - координаты вершин. Методы - подсчет...

Отделение интерфейса от реализации класса: компиляция кода реализации
Доброго времени суток, У меня возникла проблема с отделением интерфейса от реализации класса....

Помогите найти ошибки в реализации класса «Очередь»
Класс «Очередь». Методы: добавление элемента, удаление элемента, удаление из очереди всех...

Ошибки "Expression syntax" и "Unreachable code" при реализации класса матриц
Подскажите по коду. #include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;string.h&gt; #include...

3
5480 / 4875 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.04.2014, 12:09 2
Цитата Сообщение от schoolboy_ Посмотреть сообщение
P.S. проблема не в математике(наверно), а в том, что mySize всегда 0
Покажите, как вектор создаёте, что mySize всегда 0?

C++
1
2
3
4
5
Vector3D::Vector3D(size_t mySize)
{
     this ->mySize = mySize;
     myDate = new int[mySize];
}
1
1 / 1 / 1
Регистрация: 02.03.2013
Сообщений: 184
19.04.2014, 14:07  [ТС] 3
Цитата Сообщение от alsav22 Посмотреть сообщение
Покажите, как вектор создаёте, что mySize всегда 0?
Например так: Vector3D a(3);
0
5480 / 4875 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
19.04.2014, 14:09 4
Цитата Сообщение от schoolboy_ Посмотреть сообщение
Например так: Vector3D a(3);
Тогда смотрите 2 пост, mySize уже не будет равна 0.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2014, 14:09

Написать шаблон класса на основе класса vector для реализации стековой структуры данных
Пыталась написать код, но не уверена будет ли такая реализация корректной, можно ли это сделать...

Ошибки реализации очереди
Программу демонстрации работы очереди(FIFO) Функции: Push – добавить элемент в очередь; Pop() –...

Ошибки при реализации
4) Объявить массив из 3 указателей на вещественные переменные, переменные разместить в: a)...

Ошибки при реализации сортировки
Пишу быструю сортировку через функцию sort которая привязана к radiobutton через обычный button...


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

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

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