1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программирован. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление
  2. Чат codeby в telegram перезагрузка. Обсуждаем вопросы информационной безопасности и методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие. Подробнее ...

    Скрыть объявление

Классы. Наследование

Тема в разделе "Вопросы новичков и не только", создана пользователем -, 23 янв 2011.

  1. Гость

    Репутация:
    0
    Помогите реализовать наследование в классе, не могу до конца понять как это все провернуть
    з.ы. надо использовать переопределение функций и виртуальные функции(с обьяснением полученного результата)

    вот исходный класс, который переделать надо((



    Код:
    #include "stdafx.h"
    #include <string.h>
    #include <iostream>
    using namespace std;
    
    class NOTE {
    char	name[20];
    char	surname[30];
    int	 year_of_birth;
    char tel_number[20];		
    
    public:
    NOTE() {};//конструктор за замовченням
    ~ NOTE() {};//деструктор за замовченням
    char *get_surname()
    {
    return surname;
    }
    bool operator == (NOTE & n) //перевантаження ператора присвоення
    {
    if ((tel_number,n.tel_number) == 0) return false;
    return true;
    }
    void vvod()//функция вводу
    {
    cout << "Enter name: "; 
    cin >> name;
    cout << "Enter surname: "; 
    cin >> surname;
    cout << "Enter year of birth: "; 
    cin >> year_of_birth;
    cout << "Enter telephone number: "; 
    cin >> tel_number;
    }
    
    void vivod()//функция виводу
    {
    cout << "Name: " << name <<'\n';
    cout << "Surname: " << surname <<'\n';
    cout << "Year of birth: " << year_of_birth <<'\n';
    cout << "Telephone number: " << tel_number <<'\n';
    }
    };
    
    int main()
    {
    NOTE	mas[3];
    int i;
    char poisk[20];
    for (i = 0; i < 3; i++ )
    {
    mas[i].vvod();
    }
    
    for( i = 0; i < 3; i++ ) 
    {
    mas[i].vivod();
    }
    cout<<"____________________________________________________________________________
    ____";
    cout << "Enter surname to search: "; cin >> poisk;//пошук за призвищем
    for( int i = 0; i < 3; i++ ) 
    {
    if ( strcmp( mas[i].get_surname(), poisk ) == 0 ) 
    {
    mas[i].vivod();
    }
    else {cout<<"No people"<<'\n';}
    }
    system( "pause" );
    return 0;
    }
    надеюсь на вашу помощь, самой не разобраться((
     
  2. Rififi

    Rififi Гость

    Репутация:
    0
    ксешенька

    в самом простейшем случае сделай так:

    Код:
    struct X
    {
    virtual ~X() {}
    virtual void vvod() = 0;
    virtual void vivod() = 0;
    };
    
    struct NOTE : public X
    ...
    дальше всё тоже самое
    объяснение результата в двух словах не расскажешь, читай книжки по C++
     
  3. RiCrO

    RiCrO Гость

    Репутация:
    0
    Это чисто-виртуальные функции. Используется в том случае, если объекты родительского класса не предназначены для реализации.


    Наследование можно сделать таким образом:

    Код:
    class NOTE {
    char	name[20];
    char	surname[30];
    int	 year_of_birth;
    char tel_number[20];		
    
    public:
    NOTE() {};//конструктор за замовченням
    ~ NOTE() {};//деструктор за замовченням
    ...
    };
    
    // Наследование
    class BIG_NOTE : public NOTE 
    {
    char friends[20];
    
    public:
    BIG_NOTE() {};
    ~BIG_NOTE() {};
    ...
    };
    Я не знаю что тут трудного. Может вам просто трудно перебороть свою лень в попытке открыть умную книжку и почитать про классы, виртуальные функции и наследование.
     
  4. Гость

    Репутация:
    0
    какие книжки можете посоветовать?
    что не читаю-полный бред, написаны по-дурацки
    половина примеров просто не работают
     
  5. ierofant

    ierofant Гость

    Репутация:
    0
    Джесс Либерти, Брэдли Джонс. "Освой самостоятельно C++ за 21 день"
     
  6. RiCrO

    RiCrO Гость

    Репутация:
    0
    ierofant, для начала этого достаточно. Книга приятна для чтения. Но, к сожалению, не очень много охватывает.

    ксешенька, советую приобрести Роберта Лафоре "Объекто-Ориентированное Программирование в С++" - абсолютно всё ( ну если не все, то почти всё ) про С++. Сам имею и радуюсь. Берите.
     
Загрузка...
Похожие Темы - Классы Наследование
  1. 203
    Ответов:
    11
    Просмотров:
    2.833
  2. vladis222
    Ответов:
    4
    Просмотров:
    1.708
  3. BashOrgRu
    Ответов:
    6
    Просмотров:
    4.296
  4. VladSh
    Ответов:
    22
    Просмотров:
    7.425
  5. Azgor
    Ответов:
    2
    Просмотров:
    1.742

Поделиться этой страницей