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

Классы / наследование / полиморфизм - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прошу проконсультировать http://www.cyberforum.ru/cpp-beginners/thread153886.html
Добрый вечер!) меня поситила волнующая идея, так как учусь на програмера и что важно хочу этого сам. в общем хочу начать разработку приложений до начала обучения. Мне стало известно что мы будем писать курсовую в виде симулятора файловой системы, прошу вас помочь мне в этом, так скачазть проконсультировать. Ах, да. Если тема не к месту, приношу извинения... Раз тема на форуме, то, я...
C++ Как открыть привод в DEV C++? Вся инфа, найденная в гугле, сводится к сиспользованию mciSendString Неработоспособность этой функции не предполагается. Но, тем не менее, она имеет место быть. Это не работает: #include <windows.h> #include <mmsystem.h> int main() { mciSendString ("Set cdaudio door open wait", 0, 0, 0 ); return 0; http://www.cyberforum.ru/cpp-beginners/thread153851.html
подскажите сбонрик задач по с++ C++
подскажите сбонрик задач по с++.
Программа на скрипте C++
Привет всем!!! нужна помощ! как сделать свою программу как скриптовую программу ну вот у меня файл Main.cfg как мне сделать так чтобы моя программа считывала функции??? типо
C++ одномерный массив в С++ http://www.cyberforum.ru/cpp-beginners/thread153814.html
даны одномерный массив А натуральных чисел,состоящих из N элементов,и натуральное число К.если последовательность из К<N элементов встречается в строке еще раз,присвоить переменной Т значение 1,иначе значение 0.вывести на экран значение Т.
C++ массивы в С++ дан одномерный массив А неупорядоченных чисел и число Х.вывести на экран наименьшее простое число,которое больше Х и является элементом исходного массива.Если требуемого простого числа нет-вывести на экран сообщение "нет". подробнее

Показать сообщение отдельно
Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
16.07.2010, 01:29
я так понимаю надо сделать чтобы в классе А был обьявлен сам массив...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class A{
public:
   int N;
   int *M;
   A():N(0),M(NULL){} // конструктор по умолчанию, тут же инициализация N
   A(int size):N(size)   // конструктор, тут инициализируется N, выделяется память под массив M
   {
       M = new int[N];  // когда управление доходит до этого места N уже инициализировано
   }
   ~A()                  // деструктор, здесь освобождается память, выделенная под массив.
   {
      if (M != NULL) delete [] M;
   }
};
// при наследовании надо не забывать о конструкторе класса-предка
// деструктор класса-предка вызовется автоматически
class B: public A{
//...
    B():A(){}
    B(int size):A(size){}
//...
};
и все меторды надо обьявить public

Добавлено через 7 минут
а полиморфзм можно показать следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A{
public:
    virtual void print()
    {
         cout << "some thing\n";
    }
};
class B:public A{
public:
    virtual void print()
    {
         cout << "some thing else\n";
    }
};
int main()
{
    A *a1 = new A;
    A *a2 = new B;
    a1->print();   // выведет на экран some thing
    a2->print();   // выведет на экран some thing else
}
только надо оформить этот пример так, чтобы он соответствовал заданию
если обьявляешь некоторые функции виртуальными то для них создается специальная таблица, если наследуешь от класса, содержащего виртуальные функции, то функции в потомке обьявленные виртуальными и совпадающие по сигнатуре с виртуальными функцииями предка, перезаписываются в таблице виртуальных функций потомка, и вызываются вместо вирт. ф-ций предка.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru