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

Наследование класс1 *test = new класс2 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ "Завасание" программы, при входе в цикл http://www.cyberforum.ru/cpp-beginners/thread931695.html
Всем доброго времени суток. Пока писал чат на WinSock, столкнулся с такой проблемой: при в ходе в цикл While, программа ( среда - Windows Forms ) как-бы "зависает" - не реагирует на действия пользователя, перестает отрисовывать формы, не реагирует на клавишу "закрыть окно". Вот сам код: using namespace System::Runtime::InteropServices; char * StringToChar(System::String^ string); //...
C++ Игры на C++ Вот мне интерессно, стоит ли учиться создавать игры на С++? Или всё это ерунда и лучше игры создавать на тех же Delphi, WinAPI и т.д.? :) А то я хочу попытаться сделать какую-то игрушку консольную :) http://www.cyberforum.ru/cpp-beginners/thread931685.html
Как объединить пару байт в слово? (Загрузка WAV, Big Endian) C++
Привет! Есть звуковой файл с 16-и битными амплитудами. Да не суть. После открытия файла и чтения всяких заголовков, остаются чистые RAW данные, тоесть байты. Исходя из того, что файл у нас 16-и битный, в этих данных идут нужные мне амплитуда (просто значения) по два байта на каждую. Тоесть идёт последовательность байт: 0,1,2,3,4,5,6,7....и тд здесь первое значение хранится в первых двух байтах,...
C++ Ошибка
Привет всем, пытаюсь сделать конвертер из кг в граммы, у меня тут выдаёт ошибку подчёркнуто слово cout. Прошу, помогите разобраться. #include <iostream> using namespace std; int main () { int kg, grams cout << "Put in the number of kg: ";
C++ Среда разработки http://www.cyberforum.ru/cpp-beginners/thread931654.html
Слышал что вкусы различаются, соответсвенно и среда у многих отличается друг от друга... Простите, в чем разница между такими средами как dev c++, Microsoft visual и builder 5 - 6? Есть ли существенная разница между этими и возможно другими средами? Заметил что компиляторы требуют себе разную начинку и поэтому хочу послушать что об этом думают бывалые программеры.. :)
C++ Создание и подключение заголовочного файла Всем привет! Столкнулся с простой но очень интересной проблемой... Создаю новый проект в MVS2012 (пустой), создаю в нем файл исходного кода, пишу основную программу. Далее создаю в разделе "Заголовочные файлы" пустой файл *.h и пишу в нем определение класса с функциями. После чего инклудю его в исходном коде (мейновском) и пробую компилировать... Вылазеет ошибка, сообщающая что программа не... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6234 / 2963 / 288
Регистрация: 04.12.2011
Сообщений: 7,908
Записей в блоге: 3
01.08.2013, 15:41     Наследование класс1 *test = new класс2
Цитата Сообщение от VLK Посмотреть сообщение
Ни куда не уходите
Да тута мы все.
Я вот подумал: чтобы понять зачем нужен полиморфизм, нужно же сначала понять зачем он не нужен? То есть простая идея многократного использования кода, без его модификации. Пример опять мутный:
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
#include <iostream>
using namespace std; 
class A
{
public:     
A()
:x(0)
{
cout<<"default constr"<<endl;}
A(int a)
{
cout<<"one param constr"<<endl;
x=a;
 }
A(A& rhs){
x=rhs.getX();
 }
 A& operator=(A& rhs){
x=rhs.getX();
return *this;
 }
 int getX(){return x;} 
static const char* ch_constA;
    private:
        int x;
        
        static const char* ch_const_Init(){
return "abcdefgh";
        }
};
const char* A::ch_constA=A::ch_const_Init();
 
class B :public A
{
public:
B()
:A(0)
{}
B(int a)
:A(a)
{}
static const char* ch_constB;//мы не можем избавиться от ch_constA, но можем определить новую
//при этом не затрагивая базовый класс
 
static const char* ch_const_Init(){//функцию инициализации базового класса используем для определения новой)
//тут удобно скрыть метод базового класса новым
return "iklmnoprst";
        }
};
const char* B::ch_constB=B::ch_const_Init();//вызывается для B
 
 
int main() {
A a = 'a';
cout<<a.getX()<<endl;
B c = 'a' + 5;
cout<<c.getX()<<endl;
cout<<c.ch_constB<<endl;
std::system("pause"); 
    return 0;
}
В этом случае перекрытие метода базового класса помогает.
 
Текущее время: 15:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru