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

Как вернуть статический массив из метода и присвоить его производному классу? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ 3х мерный массив как параметр http://www.cyberforum.ru/cpp-beginners/thread823633.html
Видел в книге кусок кода, для вывода 3х мерного массива void print3DArray(int *m,int i, int j, int k){ int ii, jj, kk; for (ii = 0; ii < i; ++ii) { for (jj = 0; jj < j; ++jj) { for (kk = 0; kk < k; ++kk) { printf("%3.3d ",m); }
C++ Метод зейделя Надо дописать метод Зейделя на C++(если можно то с коминатариями пожайлусто) #include <iostream> #include <cmath> using namespace std; const char *str = "xyz"; enum { http://www.cyberforum.ru/cpp-beginners/thread823625.html
Создать одннаправленный линейный список C++
Помогите создать однонаправленный линейный список Машина жащее поля Марка, максимальная скоррость, вес. В функции main реализоватьсоздание 10 элементов списка, все должно быть случайно. Создать функцию вывдящую на экран все элементы списка. Создать функцию определяющую потенциальную машину с самой большой кинетической инергией и записывающую название этой машины в файл. !!!пожалуйста!!!...
C++ Чтение матрицы из файла
Дан файл, заполненный элементами матрицы. 1. считать их; 2. вывести на экран; 3. сложить и перемножить элементы обеих матриц!
C++ Разработать алгоритм и написать по нему программу транспонирования матрицы А размера m × n. Значение величин m и n выбрать из табл. 4.1 в соответствии http://www.cyberforum.ru/cpp-beginners/thread823602.html
Разработать алгоритм и написать по нему программу транспонирования матрицы А размера m × n. Значение величин m и n выбрать из табл. 4.1 в соответствии с вариантом задания. m = 3; n = 4; р = 6 Примечание! Алгоритмы решения задач должны содержать не только расчетную часть, но и блоки формирования входных и выходных данных. Добавлено через 1 час 17 минут тема актуальна
C++ как вывести float без экспоненты? void initialize() { for(int i=0; i<TICK; i++) TickspeedRequired=BaseDuration/((i+13)-0.5); //TickspeedRequired - float // BaseDuration - int } void output() { cout<<spell_name<<endl; подробнее

Показать сообщение отдельно
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
31.03.2013, 14:05     Как вернуть статический массив из метода и присвоить его производному классу?
Tiva, немного перепишу Ваш пример:
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
#include <iostream>
class A
{
protected:
    const static size_t n = 12;
    float mas[n];
public:
    A()
    {
         for (int i=0; i<n; ++i)
             mas[i] = i;
    }
    float operator[] (size_t i)
    {
        return mas[i];
    }
    void show()
    {
        for (int i=0; i<n; ++i)
            std::cout<<mas[i]<<' ';
        std::cout<<std::endl;
    }
};
class B: public A
{
    float mas[n];
public:
    B(){}
    B(A& obj)
    {
      for (int i=0; i<n; ++i)
         mas[i] = obj[i];
    }
    void show()
    {
        for (int i=0; i<n; ++i)
            std::cout<<mas[i]<<' ';
        std::cout<<std::endl;
    }
};
int main(void)
{
    A a;
    a.show();
    B b;
    b.show();
    B b1(a);
    b1.show();
    system("pause");
}
Во-первых, у Вас по умолчанию члены базового класса закрыты для производных. Поэтому mas не получится воспользоваться в классе B. Если только объявить свой с таким же именем.
Во-вторых, будь он даже доступен из из класса A, он бы уже содержал данные из его массива (наследование ж).
В-третьих, конструктор в классе B объявлен как private.
В-четвертых, Getmas() должен возвращать указатель на массив (на первых элемент), т.е. float*
В-пятых, там в конструкторе B const не нужен, так бы была -1 ошибка компилятора)
 
Текущее время: 04:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru