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

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

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

Author24 — интернет-сервис помощи студентам
Всем привет, занимаюсь созданием программы работы с векторами, дак вот, как правильно написать такой код, который бы создавал 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.10.2015, 14:56
Ответы с готовыми решениями:

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

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

Автоматическая генерация классов С ++ с UML диаграмм классов. Наследование в с++. Абстрактные классы. WhiteStarUML
Создать классовую модель(желательно в WhiteStarUML), которая включает в себя абстрактный класс...

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

1
202 / 138 / 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
03.10.2015, 17:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.10.2015, 17:36
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru