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

виртуальный оператор (двусвязный список, наследование) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Модульное деление на степень двойки http://www.cyberforum.ru/cpp-beginners/thread718711.html
Раньше я всегда использовал примерной такой подход : int mod = 8; int a = 90412488; char b = 113; int modA, modB; modA = a & int(mod-1); modB = b & char(mod-1); Понятное дело, что можно написать функцию, которая определала бы тип и была бы красивой оберткой для такого подхода, но мне хватало. Сейчас встал опять вопрос с модульным делением на 2^x. Я бы использовал этот подход, но кто-то...
C++ C++ почему прога вылетает, не успеваю посмотреть действие дан массив строк, если какая либо строка заканчивается буквой k, то удалить эту строку, вод что я написал: #include <iostream.h> #include <conio.h> #include <stdio.h> #include <math.h> #include <string> #define n 100 int main() { http://www.cyberforum.ru/cpp-beginners/thread718705.html
В n мерном массиве целых чисел, вычислить сумму отрицательных элементов массива, положительных, и упорядочить все элементы массива по возрастанию C++
Ребят помогите решить! В n мерном массиве целых чисел, вычислить сумму отрицательных элементов массива, сумму положит элементов массива, и упорядотчить все элементы массива по возрастанию
C++ Из чисел от 10 до 99 вывести те, сумма цифр которых равна n
Из чисел от 10 до 99 вывести те, сумма цифр которых равна n (n вводится с клавиатуры, n =< 18) Очень прошу. Заранее благодарен.
C++ CUDA C/C++ сложение векторов http://www.cyberforum.ru/cpp-beginners/thread718684.html
вроде все так делаю, но не запускается не могу понять ошибку делаю с шаблона там просто надо заполнить недастоющие строчки вот шаблон // MP 1 #include <wb.h> __global__ void vecAdd(float * in1, float * in2, float * out, int len) { //@@ Insert code to implement vector addition here }
C++ Квадрат натурального числа n Проверить, содержит ли квадрат натурального числа n цифру 3 в своей записи. Большое спасибо заранее! подробнее

Показать сообщение отдельно
vxg
Модератор
 Аватар для vxg
2658 / 1669 / 156
Регистрация: 13.01.2012
Сообщений: 6,214
04.12.2012, 14:23     виртуальный оператор (двусвязный список, наследование)
может так?
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include <iostream>>
#include <list>
 
class shape
{
public:
    int id;
 
    virtual bool operator==(const shape &obj) const = 0;
};
 
class circle:
    public shape
{
public:
    int r;
 
    virtual bool operator==(const shape &obj) const
    {
        const circle *p = dynamic_cast<const circle *>(&obj);
        if (!p) return false;
        if (p == this) return true;
        return r == p->r;
    }
};
 
class rect:
    public shape
{
public:
    int w, h;
 
    virtual bool operator==(const shape &obj) const
    {
        const rect *p = dynamic_cast<const rect *>(&obj);
        if (!p) return false;
        if (p == this) return true;
        return w == p->w && h == p->h;
    }
};
 
#pragma argsused
int main(int argc, char* argv[])
{
    circle c;
    c.r = 10;
 
    circle _c;
    _c.r = 10;
 
    circle __c;
    __c.r = 20;
 
    rect r;
    r.w = 10;
    r.h = 20;
 
    rect _r;
    _r.w = 10;
    _r.h = 20;
 
    rect __r;
    __r.w = 10;
    __r.h = 30;
 
    std::list<shape *> list;
 
    list.push_back(&c);
    list.push_back(&r);
 
    std::cout << "c == _c /true/: " << (c == _c) << std::endl;
    std::cout << "c == __c /false/: " << (c == __c) << std::endl;
    std::cout << "r == _r /true/: " << (r == _r) << std::endl;
    std::cout << "r == __r /false/: " << (r == __r) << std::endl;
    std::cout << "*list.front() == _c /true/: " << (*list.front() == _c) << std::endl;
    std::cout << "*list.front() == __c /false/: " << (*list.front() == __c) << std::endl;
    std::cout << "*list.back() == _r /true/: " << (*list.back() == _r) << std::endl;
    std::cout << "*list.back() == __r /false/: " << (*list.back() == __r) << std::endl;
 
    system("pause");
 
    return 0;
}
//---------------------------------------------------------------------------
 
Текущее время: 12:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru