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

Создается объект абстрактного класса:( - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа со столбцами в vector< vector<int> > http://www.cyberforum.ru/cpp-beginners/thread1031519.html
Добрый вечер. Есть ли какие-нибудь способы работы со столбцами в двумерных векторах? Часть задачи звучит так: "Переставить элементы первого столбца в обратном порядке, если в нем нет повторяющихся элементов." Задачу нужно решать используя алгоритмы stl и методы класса vector. Думаю вот скопировать элементы 1-ого столбца в отдельный вектор, и там уже с ними работать, а затем обратно. Можно ли...
C++ Динамически загружаемые библиотеки (DLL) Здравствуйте. Может кто-нибудь сможет помочь? Нужно создать библиотеку функций для работы с двумерными матрицами и скомпоновать ее в виде DLL. Набор функций должен включать: транспонирование матриц, вычисление определителя квадратной матрицы, определение обратной матрицы, умножение двух матриц, сложение матриц, умножение матрицы на скаляр. Разработать программу, демонстрирующую использование... http://www.cyberforum.ru/cpp-beginners/thread1031512.html
C++ Нужна благотворительность
Занимаюсь созданием правдоподобной (с физической точки зрения) 3D модели солнечной системы. Необходимо обозначить спутники планет гигантов Юпитера, Урана и Нептуна. Нужно написать: int <название спутника на английском> = <порядковый номер> //начиная с 0, для возможности использования 0-индексации массива
C++ Два равных элемента
Два равных элемента.Дан целочисленный двумерный массив А размера nxm.Известно что среди его элементов два и только два равны между собой.Напеатать их индексы Ребят очень прошу помощи в программировании полный ноль,но надо сдать задачу. Если не трудно можно обьяснения к строчкам.
C++ Поменять строки местами http://www.cyberforum.ru/cpp-beginners/thread1031492.html
Меня интересует такой вопрос, вот это неправильный отрывок кода. ... while (a!=NULL) { puts(a); a=strtok(NULL," "); if (strlen(a)==5) kolvo++; } ...
C++ напишите программу на с++, с комментариями Создать шаблон структуры ОКАЗАНИЕ УСЛУГИ, которая содержит поля: код услуги, стоимость, имя клиента, дата оказания услуги. Создать класс, который содержит поля: массив структур для 10 постоянных клиентов функции-методы: 1. функция ввода данных в массив структур 2 функция печати данных массива структур 3 функция, определяющая суммарную стоимость всех услуг 4 функция, определяющая... подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.12.2013, 14:04     Создается объект абстрактного класса:(
Цитата Сообщение от Suares Посмотреть сообщение
Программа должна уметь обрабатывать следующие типы ячеек:
Цитата Сообщение от Suares Посмотреть сообщение
Я хочу что бы моя таблица содержала двумерный массив ячеек, где ячейки у меня это мой базовый класс Cell
Так ничего не получится. Можно создать (как у вас) массив указателей базового класса. Эти указатели могут ссылаться как на объекты базового класса, так и на объекты производных классов. Но, если вы хотите хранить по этим указателям объекты разных классов, то и память должны выделяться под эти конкретные классы, а не под один базовый. Потом, через виртуальные методы и указатели на базовый класс, можно будет вызывать методы именно этих классов. Код для примера:
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
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
struct A
{
    virtual void f()
    {
        cout << "fA" << endl;
    }
};
 
struct B : public A
{
    virtual void f()
    {
        cout << "fB" << endl;
    }
};
 
struct C : public A
{
    virtual void f()
    {
        cout << "fC" << endl;
    }
};
 
void show(A* p, int n)
{
    for (int i = 0; i < n; ++i)
        p ->f(); // вызывается виртуальный метод того класса, с объектом которым связан указатель базового
    cout << endl;
}
 
int main () 
{
    A* p[3]; // массив указателей базового класса
    
    int n1 = 2, n2 = 3, n3 = 4;
    
    // под указатели базового класса создаются массивы базового и производных классов
    p[0] = new A[n1];
    p[1] = new B[n2];
    p[2] = new C[n3];
 
    // использование виртуальных методов
    show(p[0], n1);
    show(p[1], n2);
    show(p[2], n3);
 
    
    system("pause");
    return 0;
}
Миниатюры
Создается объект абстрактного класса:(  
 
Текущее время: 05:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru