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

Базовый класс и производный... - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск слова в предложениях http://www.cyberforum.ru/cpp-beginners/thread170154.html
Программа должна считывать текст из файла, выводить его не экран добавляя в конце каждого предложения сколько раз встретилось в предложении слово введенное с клавиатуры. Помогите плиз.... Все что смог сделать: #include "stdafx.h" #include <iostream> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv) { string a("bla. bla bla cbla"), c, b="."; cout<<"Vvedit`...
C++ Найти координаты основания высоты. Задача: Треугольник задается координатами своих вершин на плоскости: А(x1, y1), B(x2, y2), C(x3, y3). Найти длину и координаты основание высоты, опущенной из вершины А на сторону ВС. Саму высоту нашла, но координаты не могу. http://www.cyberforum.ru/cpp-beginners/thread170150.html
C++ Никак не могу разобраться с конструктором.
Добрый день. Недавно стал изучать C++. Уже 2 день пытаюсь понять суть конструктора, но не могу. Код который присутствует в книжках, не работает в компиляторах visual C++ 10 и DEV-C++ 4.9.9.2. :( например вот на такой код компилятор говорит: функция член локального класса не имеет тела и подсвечивает строку где у меня конструктор. Хотя в книжках показываются такие примеры class...
Оператор условия в C++ C++
Не как не могу написать программу по данной задаче(вложение)
C++ Найти количество элементов матрицы, значения которых не превышают по абсолютной величине Х http://www.cyberforum.ru/cpp-beginners/thread170115.html
1) Дана матрица О (2,3) Найти кол-во элементов, значения которых не превышают по абсолютной величине Х. Если кол-во больше 3, то найти минимальный элемент. Пожалуйста последний раз прошу такой помощи:::это надо на языке с++ в среде Borland C++ bilder 6
C++ Какие перспективы у C++ в будущем? Какие перспективы у си++ в будущем? Я слышал, что сейчас лучше уже начинать учить си шарп или java? подробнее

Показать сообщение отдельно
GRANDEATH
39 / 39 / 1
Регистрация: 13.09.2009
Сообщений: 108
28.09.2010, 18:51  [ТС]     Базовый класс и производный...
Спасибо огромное. Код пашет, вот только этот способ обхода тоже не идет....
abstarry.h
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
/*------------------------------------------------------------------------*/
/*                                                                        */
/*  ABSTARRY.H                                                            */
/*                                                                        */
/*  Copyright Borland International 1991, 1992                            */
/*  All Rights Reserved                                                   */
/*                                                                        */
/*------------------------------------------------------------------------*/
 
#if !defined( __ABSTARRY_H )
#define __ABSTARRY_H
 
#if defined( TEMPLATES )
 
    #if !defined( __COLLECT_H )
    #include <Collect.h>
    #endif  // __COLLECT_H
 
    #if !defined( __MEM_H )
    #include <Mem.h>
    #endif  // __MEM_H
 
    #pragma option -Vo-
    #if defined( __BCOPT__ ) && !defined( _ALLOW_po )
    #pragma option -po-
    #endif
 
    _CLASSDEF(ostream)
    _CLASSDEF(ContainerIterator)
    _CLASSDEF(AbstractArray)
    _CLASSDEF(ArrayIterator)
 
    class _CLASSTYPE AbstractArray:  public Collection
    {
 
    public:
 
        friend class ArrayIterator;
 
        virtual Object _FAR & operator []( int loc ) = 0;
 
        virtual int lowerBound() const = 0;
        virtual int upperBound() const = 0;
        virtual sizeType arraySize() const = 0;
 
        virtual void detach( int loc, DeleteType dt = NoDelete ) = 0;
        virtual void detach( Object _FAR &, DeleteType dt = NoDelete ) = 0;
        void destroy( int i )
            {
            detach( i, Delete );
            }
 
        int isEqual( const Object _FAR & ) const;
        void printContentsOn( ostream _FAR & ) const;
 
    };
 
#else   // TEMPLATES
 
    #if !defined( __COLLECT_H )
    #include <Collect.h>
    #endif  // __COLLECT_H
 
    #if !defined( __MEM_H )
    #include <Mem.h>
    #endif  // __MEM_H
 
    #if !defined( __CHECKS_H )
    #include <Checks.h>
    #endif  // __CHECKS_H
 
    #pragma option -Vo-
    #if defined( __BCOPT__ ) && !defined( _ALLOW_po )
    #pragma option -po-
    #endif
 
    _CLASSDEF(ostream)
    _CLASSDEF(ContainerIterator)
    _CLASSDEF(AbstractArray)
    _CLASSDEF(ArrayIterator)
 
    class _CLASSTYPE AbstractArray:  public Collection
    {
 
    public:
 
        AbstractArray( int, int = 0, sizeType = 0 );
        virtual ~AbstractArray();
 
        Object _FAR & operator []( int ) const;
 
        int lowerBound() const
            {
            return lowerbound;
            }
 
        int upperBound() const
            {
            return upperbound;
            }
 
        sizeType arraySize() const;
 
        virtual void detach( Object _FAR &, DeleteType = NoDelete );
        virtual void detach( int, DeleteType = NoDelete );
        void destroy( int i ) { detach( i, DefDelete ); }
        virtual void flush( DeleteType = DefDelete );
 
        virtual int isEqual( const Object _FAR & ) const;
        virtual void printContentsOn( ostream _FAR & ) const;
        //void printContentsOn( ostream _FAR & ) const;
 
        virtual ContainerIterator _FAR & initIterator() const;
 
    protected:
 
        Object _FAR & objectAt( int i ) const
            {
            return *theArray[ zeroBase(i) ];
            }
 
        Object _FAR *ptrAt( int i ) const
            {
            return theArray[ zeroBase(i) ];
            }
 
        int find( const Object _FAR & );
 
        void reallocate( sizeType );
 
        void setData( int, Object _FAR * );
 
        void insertEntry( int );
        void removeEntry( int );
        void squeezeEntry( int );
 
        sizeType delta;
        int lowerbound;
        int upperbound;
        int lastElementIndex;
 
    private:
 
        Object _FAR * _FAR *theArray;
 
        int zeroBase( int loc ) const
            {
            PRECONDITION( loc >= lowerbound && loc <= upperbound );
            return loc - lowerbound;
            }
 
        int boundBase( unsigned loc ) const
            {
            PRECONDITION( loc == UINT_MAX || loc <= upperbound - lowerbound );
            return loc == UINT_MAX ? INT_MAX : loc + lowerbound;
            }
 
        friend class ArrayIterator;
 
    };
 
    inline Object _FAR & AbstractArray::operator [] ( int atIndex ) const
    {
        return objectAt( atIndex );
    }
 
    inline sizeType AbstractArray::arraySize() const
    {
        return sizeType( upperbound - lowerbound + 1 );
    }
 
    class _CLASSTYPE ArrayIterator : public ContainerIterator
    {
 
    public:
 
        ArrayIterator( const AbstractArray _FAR & );
        virtual ~ArrayIterator();
 
        virtual operator int();
        virtual Object _FAR & current();
        virtual Object _FAR & operator ++( int );
        virtual Object _FAR & operator ++();
        virtual void restart();
 
    private:
 
        int currentIndex;
        const AbstractArray _FAR & beingIterated;
 
        void scan();
 
    };
 
#endif  // TEMPLATES
 
#if defined( __BCOPT__ ) && !defined( _ALLOW_po )
#pragma option -po.
#endif
#pragma option -Vo.
 
#endif  // __ABSTARRY_H
array.h
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
/*------------------------------------------------------------------------*/
/*                                                                        */
/*  ARRAY.H                                                               */
/*                                                                        */
/*  Copyright Borland International 1991, 1992                            */
/*  All Rights Reserved                                                   */
/*                                                                        */
/*------------------------------------------------------------------------*/
 
#if !defined( __ARRAY_H )
#define __ARRAY_H
 
#if defined( TEMPLATES )
 
    #if !defined( __ARRAYS_H )
    #include <Arrays.h>
    #endif  // __ARRAYS_H
 
    #pragma option -Vo-
    #if defined( __BCOPT__ ) && !defined( _ALLOW_po )
    #pragma option -po-
    #endif
 
    #define Array   BI_TCArrayAsVector
    #define PArray  PBI_TCArrayAsVector
    #define RArray  RBI_TCArrayAsVector
    #define RPArray RPBI_TCArrayAsVector
    #define PCArray PCBI_TCArrayAsVector
    #define RCArray RCBI_TCArrayAsVector
 
    _CLASSDEF( BI_TCArrayAsVector )
 
    #define ArrayIterator   BI_TCArrayAsVectorIterator
    #define PArrayIterator  PBI_TCArrayAsVectorIterator
    #define RArrayIterator  RBI_TCArrayAsVectorIterator
    #define RPArrayIterator RPBI_TCArrayAsVectorIterator
    #define PCArrayIterator PCBI_TCArrayAsVectorIterator
    #define RCArrayIterator RCBI_TCArrayAsVectorIterator
 
    _CLASSDEF( BI_TCArrayAsVectorIterator )
 
#else   // TEMPLATES
 
    #if !defined( __CLSTYPES_H )
    #include <ClsTypes.h>
    #endif  // __CLSTYPES_H
 
    #if !defined( __OBJECT_H )
    #include <Object.h>
    #endif  // __OBJECT_H
 
    #if !defined( __ABSTARRY_H )
    #include <AbstArry.h>
    #endif  // __ABSTARRY_H
 
    #pragma option -Vo-
    #if defined( __BCOPT__ ) && !defined( _ALLOW_po )
    #pragma option -po-
    #endif
 
    _CLASSDEF(Array)
 
    class _CLASSTYPE Array : public AbstractArray
 
    {
 
    public:
 
        Array( int upper, int lower = 0, sizeType aDelta = 0 ) :
            AbstractArray( upper, lower, aDelta )
            {
            }
 
        virtual void add( Object _FAR & );
        void addAt( Object _FAR &, int );
 
        virtual classType isA() const
            {
            return arrayClass;
            }
 
        virtual char _FAR *nameOf() const
            {
            return "Array";
            }
 
    };
 
#endif  // TEMPLATES
 
#if defined( __BCOPT__ ) && !defined( _ALLOW_po )
#pragma option -po.
#endif
#pragma option -Vo.
 
#endif  // __ARRAY_H
MyArray
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//#include <absarray.h>
#include <array.h>
 
 
_CLASSDEF(Array)
 
class _CLASSTYPE MyArray : public Array
{
     public:
      MyArray( int upper, int lower = 0, sizeType aDelta = 0 ) :
        Array( upper, lower, aDelta )
            {
        }
     virtual void removeEntry(int x)
     {
        removeEntry(x);
        //removeEntry
     }
};
То есть наследование Abstarry->Array->MyArray
Есть функция void removeEntry( int ); Она описана как protected.

Есть объект класса array. Из него надо вызвать функцию removeEntry, путем нового порожденного класса....

Добавлено через 1 минуту
Это реально запутано, но как есть(((
Проще класс A и класс B =))))

Добавлено через 1 минуту
Суть в том, что не могу я добавить функцию в public классу Abstarray, как сделали Вы в случае с g()...
У меня она в abstarray protected и называется removeEntry( int )(((((

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