Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
serduk3000
0 / 0 / 0
Регистрация: 21.12.2014
Сообщений: 26
1

Синтаксис классов и обьектов

03.10.2015, 14:56. Просмотров 203. Ответов 1
Метки нет (Все метки)

Всем привет, занимаюсь созданием программы работы с векторами, дак вот, как правильно написать такой код, который бы создавал n-ое количество обьектов, без конструктора получается, но в последствии не имею представления как в обьект засунуть структуру coordinates, с конструктором попроще, не ругается, прошу помощи!
Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <vector.h>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
int i, j;
i=2;//тут же возможен и cin>>i;
double l[i];
vector v[i];//работает, но тогда встаёт вопрос как добавить структуру coordinates в обьект
//vector v[i](2,2,2);//условно говоря то, что нужно, не работает
cin>>j;
 
if(j==1)
    {
    v[2].Plus(v,i);
    };
cin>>j;
..................
}
vector.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct coordinates
    {
    int x;
    int y;
    int z;
    };
class vector
{
    private:
        coordinates crd;
        static double l[];
    public:
        //vector(int x, int y, int z);
        int printLen(vector v, double l[], int i);
        int PrintCrd(coordinates answer);
        coordinates Plus(vector v[], int&i);
        coordinates Minus(vector v, int&i);
        double Sclr(vector v, int&i);
        double lenght(vector v, int&i);
        double Cos(vector v, int&i);
};
Сам конструктор
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <vector.h>
#include <math.h>
#include <stdio.h>
 
using namespace std;
 
vector::vector(int x, int y, int z)
    {
    crd.x=x;
    crd.y=y;
    crd.z=z;
    };
int vector::PrintCrd(coordinates answer)
    {
    cout<<"Получен вектор ("<<answer.x<<","<<answer.y<<","<<answer.z<<")"<<endl;
    return(1)
.........................
Кароче говоря, нужен способ произвольного задания количества обьектов, и последующей передачи их в необходимые методы, может есть какая другая реализация моей проблемы, но всё что я знаю здесь, дальше тупик( Выручите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2015, 14:56
Ответы с готовыми решениями:

Хранение в контейнере обьектов разных классов
Здраствуйте. Есть небольшая иерархия классов, в вершине которой стоит...

Разработать иерархию классов, демонстрирующее работу с коллекцией объектов разных классов
Задание: Разработать в соответствии с индивидуальным заданием иерархию классов...

Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов)
Тема: Множественное наследование. Явная реализация методов базовых абстрактных...

Объекты классов не видны во вложенной функции одной из классов
Такая вот проблема. Есть функция play() класса Game, где создаются объекты...

Реализация отношения классов типа двунаправленная ассоциация, UML, порядок объявления классов, неполный класс
Доброго времени суток! Осваивая UML, решил реализовать отношение...

1
Redzep
197 / 133 / 88
Регистрация: 21.12.2014
Сообщений: 369
03.10.2015, 17:36 2
Цитата Сообщение от serduk3000 Посмотреть сообщение
как правильно написать такой код, который бы создавал n-ое количество обьектов
Есть много способов, но проще всего создавать в цикле.
Цитата Сообщение от serduk3000 Посмотреть сообщение
но в последствии не имею представления как в обьект засунуть структуру coordinates
Легко, нужно просто определить такую функцию:
C++
1
2
3
4
5
6
void add (coordinates& coord)
{
    crd.x=coord.x;
    crd.y=coord.y;
    crd.z=coord.z;
}
Или такую:
C++
1
2
3
4
5
6
void add (int x, int y, int z)
{
    crd.x=x;
    crd.y=y;
    crd.z=z;
}
Можно даже так:
C++
1
2
3
4
5
6
void operator = (coordinates& coord)
{
    crd.x=coord.x;
    crd.y=coord.y;
    crd.z=coord.z;
}
И просто приравнивать:
C++
1
2
3
coordinates c;
vector v[150];
v[42] = c;
В конструкторе лучше cделать так:
C++
1
2
3
4
vector::vector() : crd(), crd.x(0), crd.y(0), crd.z(0) 
{
   
}
И старый можно оставить.
C++
1
2
3
4
5
6
vector::vector(int x, int y, int z) : crd()
{
    crd.x=x;
    crd.y=y;
    crd.z=z;
}
Добавлено через 2 минуты
Цитата Сообщение от serduk3000 Посмотреть сообщение
//vector v[i](2,2,2);//условно говоря то, что нужно, не работает
Так делать нельзя, не получится вызвать конструктор для массива.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2015, 17:36

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

Реализация классов-наследников или классов-родителей
Не могу переделать функционал программы таким образом, чтобы у появились...

Наследование классов. Копирование производных классов
Здравствуйте всем, у меня такой вопрос: написал код #include &quot;stdafx.h&quot; ...


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

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

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