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

Адаптер - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Компилятор на WP8 http://www.cyberforum.ru/cpp-beginners/thread1004028.html
Существует ли официальный компилятор С++ на Windows Phone 8?
C++ Создание классов и объект Написать программу создания класса. File: Имя файла, Размер, Дата создания, Количество обращений. Определить возможно ли записать файл на CD-диск. http://www.cyberforum.ru/cpp-beginners/thread1004025.html
Как сделать чтобы ответ выводило таблицей по 10 чисел? C++
Как сделать чтобы ответ выводило таблицей по 10 чисел? Ниже написан код программы #include <iostream> #include <conio.h> // для getch using namespace std; // пространство имен STD, включает в себя std::cout, std::endl bool Simple (int N)// функция проверяет является ли число простым, и если да то true { bool rez=true; for(int k=2;k<=N/2;k++) // Если при делении на 2, остаток 0 -...
C++ Из заданного на плоскости множества точек выбрать три различные точки
Само задание звучит так: "Из заданного на плоскости множества точек выбрать три различные точки так, чтобы разность между площадью круга, ограниченного окружностью, проходящей через эти три точки, и площадью треугольника с вершинами в этих точках была минимальной " Плюс все функции при выполнении оформить в виде шаблонов. Помогите, пожалуйста, исправить ошибки:cry: 1>Компиляция......
C++ класс полиномы http://www.cyberforum.ru/cpp-beginners/thread1004004.html
функция сложения работает неправильно когда складываются отрицательные числа и еще функция деления вообщене работает, подскажите в чем ошибка ? // polinom.cpp: определяет точку входа для консольного приложения. // //#include <stdafx.h> #include <iostream> #include <cstring> #include <cstdlib> using namespace std; class Polinom {
C++ Определите: сколько раз температура была выше нуля Привет всем!! У меня есть не большая проблемка! Вот суть её: В текстовом файле записаны результаты измерения температуры воздуха, которые проводились ежедневно в течение декабря. Определите: сколько раз температура была выше нуля. Я не знаю, как правильно записать условие!! вот код мой,то есть часть его #include <iostream> #include <cstdlib> подробнее

Показать сообщение отдельно
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
11.11.2013, 10:17     Адаптер
Sublimee, у вас проблема была вот здесь:
C++
1
2
Circle C1(x1, y1);
Our_shapes.push_back(&C1);
Уважаемый вы же не выделяете память динамически под каждый объект списка. Нужно вот так:
C++
1
2
Shape* ptr = new Circle(x1, y1);
Our_shapes.push_back(ptr);
Алгоритм запишется тоже очень просто:
C++
1
for_each(Our_shapes.begin(), Our_shapes.end(), mem_fun(&Shape::Draw));
Вот вам подправленный код:
Кликните здесь для просмотра всего текста
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
#include <list>
#include <iostream>
#include <algorithm>
#include <functional>
#include <cstdlib>
#include <iomanip>
 
using namespace std;
 
class Shape {
        public:
                int x;
                int y; // координаты центра
                bool IsMoreLeft(int x1) { // расположена ли данная фигура левее, чем фигура переданная в качестве аргумента
                        if (x < x1) {
                                return true;
                        } else {
                                return false;
                        }
                }
                bool IsUpper(int y1) { // расположена ли данная фигура выше, чем фигура переданная в качестве аргумента
                        if (y1 > y) {
                                return true;
                        } else {
                                return false;
                        }
                }
 
           virtual void Draw() = 0;
};
 
class Circle: public Shape {
public:
        Circle(int x1, int y1) {
                x = x1;
                y = y1;
        }
        void Draw() {
                cout << "Circle" << "x = " << x << "y = " << y << endl;
        }
 
};
 
class Triangle: public Shape {
public:
        Triangle(int x1, int y1) {
                x = x1;
                y = y1;
        }
        void Draw() {
                cout << "Triangle" << "x = " << x << "y = " << y << endl;
        }
};
 
class Square: public Shape {
public:
        Square(int x1, int y1) {
                x = x1;
                y = y1;
        }
        void Draw() {
                cout << "Square " << "x = " << x << "y = " << y << endl;
        }
};
 
int main()
{
    list<Shape*> Our_shapes;
 
    for (int i = 0; i < 5; i++)
    {
        cout << "Select a shape" << endl;
        cout << "C - Circle" << endl;
        cout << "T - Triangle" << endl;
        cout << "S - Square" << endl;
        char c;
        cin >> c;
        int x1, y1;
        if (c == 'C') {
            cout << "x = " ;
            cin >>  x1;
            cout << "y = " ;
            cin >>  y1;
            Shape* ptr = new Circle(x1, y1);
            Our_shapes.push_back(ptr);
        }
        if (c == 'S') {
            cout << "x = " ;
            cin >>  x1;
            cout << "y = " ;
            cin >>  y1;
            Shape* ptr = new Square(x1, y1);
            Square S1(x1, y1);
            Our_shapes.push_back(ptr);
        }
        if (c == 'T') {
            cout << "x = " ;
            cin >>  x1;
            cout << "y = " ;
            cin >>  y1;
            Shape* ptr = new Triangle(x1, y1);
            Our_shapes.push_back(ptr);
        }
    }
 
    for_each(Our_shapes.begin(), Our_shapes.end(), mem_fun(&Shape::Draw));
 
    return 0;
}

P.S. STL очень мощная библиотека просто нужно научится ею пользоваться.
 
Текущее время: 11:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru