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

Как обратится к обьекту класса, являющегося наследником абстрактного класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Линейный поиск в массиве структуры http://www.cyberforum.ru/cpp-beginners/thread1508038.html
Нужно с помощью линейного поиска искать в готовом массиве структуры значение вводимое с клавиатуры. Напишите шаблон , по которому это можно реализовать. Спасибо.
C++ Windows боксы (Окна, формы) Приветствую уважаемые пользователи cyberforum! Сразу не знаю как правильно называется это. Но как можно реализовать окна на Windows? http://www.cyberforum.ru/cpp-beginners/thread1508019.html
C++ Не могу осознать причину ошибки
Ну, в общем, читаю, такой, Страуструпа и прогаю малеху его примеры. Вот реализация одного из них: #include<iostream> char * strcpy1(char * dst, const char * src){ while (*dst++ = *src++) ; return dst; } int main()
Строка string. Не присваивается новое значение C++
Есть строка: string str_in = "A"; Она используется в созданной мной функцией как один из аргументов: fuction(arg1,arg2,str_in,arg4); Внутри функции значение строки меняется: char sim; //string m;
C++ Наследование методов http://www.cyberforum.ru/cpp-beginners/thread1507978.html
Может мне стоит книжку почитать или получше подумать над структурой, но вопрос вот: Есть у нас древо классов: base > s2 > s3 > s4 > ... И есть в base virtual void f(){ _act1_ } А в s2 virtual void f(){ _act2_ } А в s3 должен обратно быть метод base::virtual void f(){ _act1_ } И чтобы s4 также использовал base::virtual void f(){ _act1_ } Т.е. переопределение виртуального должно работать...
C++ Класс Singletone Здравствуйте! Продолжаю готовиться к экзамену по С++. На последнем уроке вкратце рассказали про класс Singleton, но я расслабился и слушал невнимательно, так как урок был последний. Одним словом, посоветуйте хороший источник, где рассказывается про класс Singletone, где легко и понятно объясняется, от простого к сложному, с примерами на С++ на каждом этапе. Желательно на русском языке. ... подробнее

Показать сообщение отдельно
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,903
Записей в блоге: 17
01.08.2015, 03:17     Как обратится к обьекту класса, являющегося наследником абстрактного класса
Цитата Сообщение от smartpointer Посмотреть сообщение
Что за ненависть к сишникам ? Асм не знаю - честно
А откуда страсть нарушать инкапсуляцию мотивируя расходом памяти?

Добавлено через 3 минуты
Цитата Сообщение от smartpointer Посмотреть сообщение
Про friend-ы интересно - расскажите (ну или ссылку на крайняк)?
А что расказывать friend нарушает инкапсуляцию... что-то новое? Из чего применять его следует только кода иначе просто нельзя.
К примеру, если нужно запретить создавать объекты напрямую через конструкторы.

Добавлено через 8 минут
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
class CarGasStation : public AbstractGasStation
{ 
   friend class ChainOfGasStation;
   protected:
       CarGasStation(){/**/};
  // твой код
};
 
class TruckGasStation : public AbstractGasStation
{
   friend class ChainOfGasStation;
   protected:
     TruckGasStation(){/**/};
  // твой код
};
 
class ChainOfGasStation
{
  public:
     ChainOfGasStation ();
    ~ChainOfGasStation ()
     {  
       clear();
     };
 
    void clear()
   {
       for(size_t i=0;i<station_.size();++i) 
          delete station_[i]; 
       stations_.clear();
   }
 
    AbstractGasStation*  addCarGasStation()
    { 
        AbstractGasStation*  station= new CarGasStation;
        stations_.push_back(station);   
        return station;    
    }  
 
    AbstractGasStation*  addTruckGasStation()
    { 
        AbstractGasStation*  station= new TruckGasStation;
        stations_.push_back(station);   
        return station;    
    }  
 
 
    AbstractGasStation* station(size_t index)
    {
       return stations_.at(index);
    }
   
    size_t size() const
   {
      return station_.size();
   }
 
  private:
     std::vector<AbstractGasStation*> stations_; // Либо массив что усложнит задачу.
};
// ....
ChainOfGasStation  сhain;
сhain.addCarGasStation();
сhain.addTruckGasStation();
 
// TruckGasStation*  truckStation= new TruckGasStation; // Ошибка.
 
Текущее время: 13:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru