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

Создание дерева в родительском классе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Генератор судоку http://www.cyberforum.ru/cpp/thread90576.html
Маленькая проблемка с программой - в одном из 10 случаев программа зависает. Кому не сложно, прошу проверить и исправить. Вот полный работающий код: #include <iostream> #include <cstdlib> using namespace std;
C++ Новый стандарт с++ В 2009 году должен быть выйти новый стандарт. Хотелось бы узнать какие новшевства он принес в язык. Стал язык удобнее или нет. И какие компиляторы уже на данный момент поддерживают этот стандарт. P.S. Гугл не дал никаких убедительных ответов на вопросы. http://www.cyberforum.ru/cpp/thread90544.html
С++ vs. Visual Studio C++! C++
В чем разница между C++ и Visual Studio C++??
C++ Открытие wav файла
Здравствуйте. мне надо открыть музыкальный файл формата wav и считать информацию в массив из блока data. написала начало функции. но не работает. не находит блоки wav и data вообще. вот программа. что не так? WAVEFORMATEX* wfx; // Указатель на объект структуры WAVEFORMATEX HMMIO m_hmmioIn; // Мультимедийный дескриптор файла MMCKINFO m_ckIn; // Инфоромация о вложенном блоке формата...
C++ Удаление инфы из дискового файла http://www.cyberforum.ru/cpp/thread90009.html
Есть файл. Этот файл читается и пишется как типизированный (подозреваю, что к делу это не относится), то есть в качестве указателя на буфер юзится указатель на структуру. Надо из файла удалить одну запись. Как это сделать без использования временного файла ?
C++ Подключение библиотеки Здраствуйте. Как мне подключить библиотеку к проекту только 1 раз. тоесть есть у меня 4 срр файла каждий поключаен набор библиотек //lib.h #pragma once #include <iostream> #include <conio.h> #include <vector> #include "Firm.h" #include "Point.h" #include "Penta.h" подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
04.02.2010, 18:51     Создание дерева в родительском классе
Объект класса Bx должен сам создавать объекты через new Bx(...), не вызывая при этом виртуальные методы. При этом указатели на полученные объекты заносятся в вектор, объявленный в A, но уже из конструктора Bx.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A{
public:
    virtual void Method() = 0;
protected:
    vector<A*> children;
};
 
class B1: public A{
public:
    B1(const char* str)
    {
        for(int i=0; i<20; +i)
            children.push_back(new B1(str));
    }
};
Если все производные классы создают детей одинаково, можно воспользоваться шаблоном и сэкономить на писанине.
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 Method() = 0;
protected:
    vector<A*> children;
};
 
template<typename T>
void PopulateChildren(vector<A*> &children, const char* str)
{
    for(int i=0; i<20; ++i)
        children.push_back(new T(str));
}
 
class B1: public A{
public:
    B1(const char* str)
    {
        PopulateChildren<B1>(children, str);
    }
};
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru