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

Почему не работает? Поворот объекта - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разобраться почему не компилируется код (использование std::bitset) http://www.cyberforum.ru/cpp-beginners/thread1498864.html
У меня не компилируется этот код. Где Ошибка? #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std;
C++ Программа, показывающая плотность вещества #include <iostream> using namespace std; struct Fluid { const char *name; double d; }; struct Gas http://www.cyberforum.ru/cpp-beginners/thread1498854.html
Массив "hotel", в который пользователь добавляет "жильцов" C++
Дорогие форумчане, помогите мне решить проблему в данной программе! Суть программы: Есть массив "hotel", в который пользователь добавляет "жильцов" (присваивает значения переменным из массива), вводит он их с клавиатуры. Так же если пользователь "не хочет никого туда заселять", он вводит вместо "имени заселяемого" слово "нет!", что присваивает переменной значение "свободен". Либо если он...
C++ Вывести те слова из текста на экран, которые отсортированы по количеству гласных букв
Дали написать программу "В файле есть текст, вывести слова из текста на экран, которые отсортированы по количеству гласных букв" Работаю в Visual Studio C++. Желательно самыми простыми функциями и если можно с описанием.
C++ Какой контейнер в STL и для чего эффективнее использовать? http://www.cyberforum.ru/cpp-beginners/thread1498826.html
Какой контейнер в STL и для чего эффективнее использовать? И почему
C++ Как сделать execl("my", "arg", argv)? Пытаюсь сделать программу под linux. Нужен такой код, который бы запускал execl с двумя моими параметрами и всеми параметрами из argv кроме первого (имя приложения). Пытался преобразовать argv в строку - не разобрался с типами данных. Передавать их по одномуexecl("my", "args", argv, argv...)не вариант, так как заранее не известно количество параметров. подробнее

Показать сообщение отдельно
DrOffset
6460 / 3834 / 885
Регистрация: 30.01.2014
Сообщений: 6,629
14.07.2015, 20:30     Почему не работает? Поворот объекта
Цитата Сообщение от Dj_Crush Посмотреть сообщение
Конструктор в неявном виде получается?
А. Прости. Я не прав. У тебя нет там конструктора, а есть функция create
Тогда так:
C++
1
2
3
4
    Object::Object(int counter, float nn, float nn1, float nn2)
         : tor(counter, coord(nn, nn1, nn2))
    {
    }
Добавлено через 38 секунд
Это для случая, когда у coord есть конструктор для от трех параметров.

Добавлено через 5 минут
В общем похоже проще начальный код поправить:
Кликните здесь для просмотра всего текста

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
#include <vector>
#include <array>
#include <iostream>
 
using namespace std;
struct coord{
    float x;
    float y;
    float z;
 
    coord(float x, float y, float z)
       : x(x), y(y), z(z)
    {}
};
 
class Object
{
public:
    Object(size_t count, float nn, float nn1, float nn2)
        : tor(count, coord(nn, nn1, nn2))
    { }
    Object()
        : tor()
    { }
 
    void create(size_t count, float nn, float nn1, float nn2)
    {
        for (size_t l = 0; l < count; l++)
            tor.push_back(coord(nn,nn1,nn2));
    }
 
    void Rotate(int AngleX)
    {
        for (size_t l = 0; l < tor.size(); l++)
        {
            tor[l].x *= AngleX;
            tor[l].y *= AngleX;
            tor[l].z *= AngleX;
        }
    }
    void print()
    {
        for (size_t l = 0; l < tor.size(); l++)
            cout << tor[l].x <<"  "<<tor[l].y<<"    "<<tor[l].z<< endl;
    }
    ~Object()
    {
    }
private:
    int x, y;
    vector<coord> tor;
};
 
int main()
{
 
    Object ss1(5, 1,2,3);
    Object ss2(6, 3,4,5);
 
    ss1.print();
    ss2.print();
    ss1.Rotate(4);
    ss2.Rotate(2);
 
    ss1.print();
    ss2.print();
 
    cout << "---------------------" << endl;
    ss1.print();
    ss2.print();
 
    ss1.print();
    ss2.print();
 
    system("pause");
}

Поудалял оттуда явные ляпы (вроде явных вызовов деструкторов).
 
Текущее время: 00:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru