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

Как бы это декларировать? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подскажите почему выдает ошибку? http://www.cyberforum.ru/cpp-beginners/thread704572.html
#include <iostream> using namespace std; int main(){ int a,b,c,x1,x2,dx; cout<< "Inter a="; cin >> a; cout<< "Inter b="; cin >> b; cout<< "Inter c="; cin >> c; cout<< "Inter X1="; cin>> x1; cout<< "Inter X2="; cin>> x2;
C++ Зачем вызывается конструктор при объявлении указателя на класс Не знаю, правильно или нет назвал тему... Вот такая ситуация понятна: int * pHeap = new int; *pHeap = 7; Здесь мы выделяем в динамической памяти место для хранения числа типа int. Результатом команды new будет адрес ячейки в динамической памяти. Этот адрес мы и присваиваем созданному указателю. Ну а потом по этому указателю уже можем доступаться до ячейки. Не понятна ситуация, когда в... http://www.cyberforum.ru/cpp-beginners/thread704558.html
C++ Из одного массива сформировать другой
Здравствуйте, нужна помощь. Уже второй день пытаюсь решить задачку на массив но ни как не получается. Нужно сформировать из массива x(n) другой массив y(k), состоящий только из положительных элементов. Проблема в том что на месте отрицательных элементов выводится набор каких то чисел, а нужно чтобы во второй массив вводились только положительные элементы. Поправьте где я ошибся, заранее...
C++ Создать класс, который определяет можно ли по введенным значениям построить треугольник, и если можно, то какой
Создать класс, который определяет можно ли по введенным значениям построить треугольник, и если можно, то какой - прямоугольный или равносторонний). Значения вводятся с клавиатуры. Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса: Предусмотреть методы осуществляющие проверку корректности ввода...
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread704538.html
Нужна ваша помощь очень в задании я выполнял -вставить элемент, чтобы он имел указанный индекс(удлинить массив) - проблема, остальное все работает как нужно когда я вывожу ввиде матрицы например 1 1 1 1 1 (-5 элементов) 1 1 1 1 1 на 2 место например элемент 10 будет
C++ Отсутствует спецификатор типа - предполагается int Здравствуйте форумчане!Вот не понимаю возникновение одной ошибки : При объявлении указатель типа BYTE сыпеться большая куча ошибок: BYTE *bits; Ошибка 3 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\users\edison4\documents\visual studio 2010\projects\e4engine_simple_5\e4engine_simple_5\etexture.h 13 1 E4Engine_Simple_5... подробнее

Показать сообщение отдельно
vxg
Модератор
 Аватар для vxg
2667 / 1678 / 158
Регистрация: 13.01.2012
Сообщений: 6,271
22.11.2012, 10:45     Как бы это декларировать?
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
//------------------------------------------------------------------------------
#ifndef vector_h
#define vector_h
//------------------------------------------------------------------------------
class vector
{
public:
    float x;
    float y;
    float z;
 
    vector(void);
    vector(const float &x, const float &y, const float &z);
    virtual ~vector();
 
    const vector &operator=(const vector &v);
 
    float &operator[](const unsigned index);
    const float &operator[](const unsigned index) const;
 
    bool operator==(const vector &v) const;
    bool operator!=(const vector &v) const;
 
    vector operator-(void) const;
 
    vector operator+(const vector &v) const;
    vector operator-(const vector &v) const;
    vector operator*(const float &c) const;
    float operator*(const vector &v) const; //скалярное умножение
    vector operator^(const vector &v) const; //векторное умножение
    vector operator&(const vector &v) const; //поэлементное умножение
    vector operator/(const float &c) const;
 
    const vector &operator+=(const vector &v);
    const vector &operator-=(const vector &v);
    const vector &operator*=(const float &c);
    const vector &operator^=(const vector &v); //векторное умножение
    const vector &operator&=(const vector &v); //поэлементное умножение
    const vector &operator/=(const float &c);
 
    float module() const;
    const vector &normalize(const float &c = 1);
};
//------------------------------------------------------------------------------
vector operator*(const float &c, const vector &v);
//------------------------------------------------------------------------------
#endif //vector_h
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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
//------------------------------------------------------------------------------
#include "vector.h"
//------------------------------------------------------------------------------
#include <math.h>
#include <stdlib.h>
//------------------------------------------------------------------------------
vector::vector(void)
    : x(0),
      y(0),
      z(0)
{}
//------------------------------------------------------------------------------
vector::vector(const float &x, const float &y, const float &z)
    : x(x),
      y(y),
      z(z)
{}
//------------------------------------------------------------------------------
vector::~vector()
{}
//------------------------------------------------------------------------------
const vector &vector::operator=(const vector &v)
{
    if (this != &v)
    {
        x = v.x;
        y = v.y;
        z = v.z;
    }
 
    return *this;
}
//------------------------------------------------------------------------------
float &vector::operator[](const unsigned index)
{
    return *(&x + index);
}
//------------------------------------------------------------------------------
const float &vector::operator[](const unsigned index) const
{
    return *(&x + index);
}
//------------------------------------------------------------------------------
bool vector::operator==(const vector &v) const
{
    return x == v.x && y == v.y && z == v.z;
}
//------------------------------------------------------------------------------
bool vector::operator!=(const vector &v) const
{
    return x != v.x || y != v.y || z != v.z;
}
//------------------------------------------------------------------------------
vector vector::operator-(void) const
{
    return vector(-x, -y, -z);
}
//------------------------------------------------------------------------------
vector vector::operator+(const vector &v) const
{
    return vector(x + v.x, y + v.y, z + v.z);
}
//------------------------------------------------------------------------------
vector vector::operator-(const vector &v) const
{
    return vector(x - v.x, y - v.y, z - v.z);
}
//------------------------------------------------------------------------------
vector vector::operator*(const float &c) const
{
    return vector(x * c, y * c, z * c);
}
//------------------------------------------------------------------------------
float vector::operator*(const vector &v) const
{
    return x * v.x + y * v.y + z * v.z;
}
//------------------------------------------------------------------------------
vector vector::operator^(const vector &v) const
{
    return vector
    (
        y * v.z - z * v.y,
        z * v.x - x * v.z,
        x * v.y - y * v.x
    );
}
//------------------------------------------------------------------------------
vector vector::operator&(const vector &v) const
{
    return vector(x * v.x, y * v.y, z * v.z);
}
//------------------------------------------------------------------------------
vector vector::operator/(const float &c) const
{
    return vector(x / c, y / c, z / c);
}
//------------------------------------------------------------------------------
const vector &vector::operator+=(const vector &v)
{
    x += v.x;
    y += v.y;
    z += v.z;
 
    return *this;
}
//------------------------------------------------------------------------------
const vector &vector::operator-=(const vector &v)
{
    x -= v.x;
    y -= v.y;
    z -= v.z;
 
    return *this;
}
//------------------------------------------------------------------------------
const vector &vector::operator*=(const float &c)
{
    x *= c;
    y *= c;
    z *= c;
 
    return *this;
}
//------------------------------------------------------------------------------
const vector &vector::operator^=(const vector &v)
{
    return *this = vector
    (
        y * v.z - z * v.y,
        z * v.x - x * v.z,
        x * v.y - y * v.x
    );
}
//------------------------------------------------------------------------------
const vector &vector::operator&=(const vector &v)
{
    x *= v.x;
    y *= v.y;
    z *= v.z;
 
    return *this;
}
//------------------------------------------------------------------------------
const vector &vector::operator/=(const float &c)
{
    x /= c;
    y /= c;
    z /= c;
 
    return *this;
}
//------------------------------------------------------------------------------
float vector::module() const
{
    return sqrt(fabs(x * x + y * y + z * z));
}
//------------------------------------------------------------------------------
const vector &vector::normalize(const float &c)
{
    return *this /= module() / c;
}
//------------------------------------------------------------------------------
vector operator*(const float &c, const vector &v)
{
    return v * c;
}
 
Текущее время: 00:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru