Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
3 / 3 / 2
Регистрация: 17.05.2010
Сообщений: 67

Наследование

09.12.2011, 00:14. Показов 1194. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На основе класса «Массив» создать производный класс «Ассоциативный массив». Данный класс содержит массив указателей, каждый из которых указывает на соответствующий ему элемент исходного массива. В классе должны быть переопределены функции ввода и вывода исходного массива через соответствующие указатели.

Выдает ошибку [Linker error] undefined reference to `Stream::Stream()'

Базовый класс.

mas.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#ifndef MAS_H
#define MAS_H
class Mas{
    friend ostream& operator <<( ostream &, Mas &);
    friend istream& operator >>(istream &, Mas &);
        friend void operator ++(Mas &);
        friend void operator --(Mas &);
        
    public: 
        Mas ( );
        void umnoj (int);
        void print();
        void vivod();
        int M[10];
    
};
#endif
mas.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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream.h>
#include "mas.h"
Mas::Mas( ){}
ostream & operator<<(ostream &output, Mas &num)
{
 for (int i=0;i<10; i++)
    output<<"("<<num.M[i] << ")" ;
    return output;
}
istream & operator>>(istream &input, Mas &num)
{
        for (int i=0;i<10; i++)
    cin>>num.M[i];
    return input;
}
 
void Mas::umnoj(int a)
{ for (int i=0;i<10; i++)
     M[i]=M[i]*a;
          }
 
void operator++ (Mas &B){
     for (int i=0;i<10; i++)
 B.M[i]=B.M[i]+1;}
void Mas::print()
{
               for (int i=0;i<10; i++)
               cout<<"M[10]="<<M[i]<<endl;
               }
void operator-- (Mas &B)
{
     for (int i=0;i<10; i++)
     B.M[i]=B.M[i]-1;}
void Mas::vivod()
{
               for (int i=0;i<10; i++)
               cout<<"M[10]="<<M[i]<<endl;}
Производный класс

asmas.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef ASMAS_H
#define ASMAS_H
#include "Mas.h"
class Asmas:public Mas
{
    public: 
        void vvod();
        Asmas();
        void print();
    private:
            int *A[10];
            
           
        
};
#endif
asmas.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "asmas.h"
Asmas::Asmas()
{
 for (int i=0;i<10; i++)
 A[i]=&M[i];
}
void Asmas::vvod()
{
               for (int i=0;i<10; i++)
               {
               cout<<"A[10]=";
               cin>>*A[i];
               }
}
 
void Asmas::print()
{
               for (int i=0;i<10; i++)
               cout<<"A[10]="<<*A[i]<<endl;
               }
main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
#include "mas.h"
#include "asmas.h"
main()
{
    Asmas B;
    B.vvod();
    B.print();
    system("Pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2011, 00:14
Ответы с готовыми решениями:

Заменить наследование классов на наследование интерфейсов
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование в С++
Здравствуйте, написал вот код для программы с наследованием, работает, но когда вычисляет площадь, пишет: S=0,когда площадь не равна нулю....

Наследование
1) Определить класс корова состоящее из следующих полей: идентификационный номер – должно быть гарантировано уникально (для чего...

4
Заблокирован
09.12.2011, 00:26
Цитата Сообщение от FauLL Посмотреть сообщение
#include <iostream.h>
замени на:

#include <iostream>
0
3 / 3 / 2
Регистрация: 17.05.2010
Сообщений: 67
09.12.2011, 10:58  [ТС]
все я разобрался
0
3 / 3 / 2
Регистрация: 17.05.2010
Сообщений: 67
24.12.2011, 11:48  [ТС]
Создать шаблон класса «Массив», который является базовым для шаблона класса «Ассоциативный массив». В классах должны быть определены функции, согласно заданию 1.

Добавлено через 16 часов 15 минут
up++++
0
3 / 3 / 2
Регистрация: 17.05.2010
Сообщений: 67
12.01.2012, 23:59  [ТС]
Создать абстрактный класс «Абстрактный массив», который является базовым для класса «Массив». В классе должна быть определена чистая виртуальная функция для суммы элементов массива, переопределённая в классах «Массив» и «Ассоциативный массив».

Компилятор выдвет две ошибки.

Вот программа

abmas.h
C++
1
2
3
4
5
6
7
8
#ifndef ABMAS_H
#define ABMAS_H
class Abmas{
    public:
    virtual void a() const=0; 
    virtual void vivod();
};
#endif
asmas.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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream.h>
#include "asmas.h"
Asmas::Asmas()
{
 for (int i=0;i<10; i++)
 A[i]=&M[i];
}
void Asmas::vvod()
{
               for (int i=0;i<10; i++)
               {
               cout<<"A[10]=";
               cin>>*A[i];
               }
}
 
 
 
 
void Asmas::print()
{
               for (int i=0;i<10; i++)
               cout<<"A[10]="<<*A[i]<<endl;
               
     }
     
     void Asmas::vivod(){
                {int Sum = 0; 
 
        for (int i = 0; i <*A[i]; i++)
 
        if(*A[i]!=*A[9])
 
        Sum += *A[i];
        
            cout << Ñóììà çíà÷åíèé ýëåìåíòîâ ìàññèâà =  " << Sum << endl;
          }}
asmas.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef ASMAS_H
#define ASMAS_H
#include "Mas.h"
class Asmas:public Mas
{
    public: 
            virtual void a()const{cout<<endl;};
            virtual void vivod();
        void vvod();
        Asmas();
        void print();
    private:
            int *A[10];
            int sum;
            
           
        
};
#endif
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
#include <shlwapi.h>
#include "mas.h"
#include "abmas.h"
#include "asmas.h"
main()
{
    Asmas B;
    Abmas *a; Abmas*h;
    Mas C;
    a=&C;
    h=&B;
    a->vivod();
    h->vivod();
    system("Pause");
    return 0;
}
mas.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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream.h>
#include "mas.h"
Mas::Mas( ){}
ostream & operator<<(ostream &output, Mas &num)
{
 for (int i=0;i<10; i++)
    output<<"("<<num.M[i] << ")" ;
    return output;
}
istream & operator>>(istream &input, Mas &num)
{
        for (int i=0;i<10; i++)
    cin>>num.M[i];
    return input;
}
 
void Mas::umnoj(int a)
{ for (int i=0;i<10; i++)
     M[i]=M[i]*a;
          }
 
void operator++ (Mas &B){
     for (int i=0;i<10; i++)
 B.M[i]=B.M[i]+1;}
void Mas::print()
{
               for (int i=0;i<10; i++)
               cout<<"M[10]="<<M[i]<<endl;
               }
void operator-- (Mas &B)
{
     for (int i=0;i<10; i++)
     B.M[i]=B.M[i]-1;}
void Mas::vivod()
{
               for (int i=0;i<10; i++)
               cout<<"M[10]="<<M[i]<<endl;}
mas.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef MAS_H
#define MAS_H
#include "Abmas.h"
class Mas: public Abmas 
{
      
    friend ostream& operator <<( ostream &, Mas &);
    friend istream& operator >>(istream &, Mas &);
        friend void operator ++(Mas &);
        friend void operator --(Mas &);
        
    public: 
            virtual void a()const{cout<<endl;};
        Mas ( );
        void umnoj (int);
        void print();
        void vivod();
        int M[10];
    
};
#endif
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2012, 23:59
Помогаю со студенческими работами здесь

Наследование
Подскажите,пожалуйста,новичку в чем ошибка.Создал класс человек,создал класс студент,кот.наследует имя от класса человек.Может я тут чего...

наследование
Задача : Базовый класс: class Shape2D { public: Shape2D(); virtual ~ Shape2D(); virtual float Area( )= 0; virtual...

Наследование
Добрый вечер, помогите пожалуйста с наследованием. Написал программу ( ниже ), но как видите пришлось в классе-наследнике Bus ( Vehicle...

Наследование
Реализовать наследование классов квартиры,этаж,подъезд,дом

Наследование
Суть задачи: Реализуйте класс символьная строка,наследуйте от него класс двоичная строка. Реализуйте методы Show(от базовой строки) ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru