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

Не могу создать ссылку на объект в массиве - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Dev C++ выдает ошибку http://www.cyberforum.ru/cpp-beginners/thread930151.html
// // Программа для преобразования // градусов Цельсия в градусы Фаренгейта:: // Fahrenheit = NCelsius * (212 - 32) /100 + 32 // #include <stdio.h> #inclade <iostream.h> int main (int nNumberofArgs, char* pszArgs ) { // Введите температуру в градусах Цельсия
C++ функция abort() тестирую сигнал SIGABRT который генерируется функцией abort() функция abort() дает сбой debug error! см. вложение. среда MVStudio 2008 как вылечить?? спасибо. #include <iostream> http://www.cyberforum.ru/cpp-beginners/thread930143.html
Осмысление указателей C++
Пожалуйста расскажите более популярным языком что это такое и для чего они нужны. Перечитал несколько раз пару дополнительных источников - не могу понять как они эффективно реализуются на деле..
C++ Не могу понять задание по "ООП"
Добрый вечер! Задание вообщем не сложное и в реализации проблем не ощущаю, но никак не могу разобрать один момент: "Описать абстрактный класс, описывающий четырехугольник. Сделать в нем метод, определяющий площадь. Описать конструкторы, селекторы и модификаторы. Создать два класса-наследника: для квадратов и для трапеций. " "два класса-наследника: для квадратов и для трапеций" - они...
C++ ms dos http://www.cyberforum.ru/cpp-beginners/thread930130.html
Доброго времени суток. Только сегодня начала читать С++ для чайников и тут же встала проблема-не могу поставить Ms Dos. Вот что пишет: MS DOS - Популярнейшая операционная система прошлого века ;-) Это самая последняя 16 битная версия MS - DOS. Для установки потребуется 3 дискеты. Скопируйте файл dos622.exe в любой каталог и запустите. Затем последовательно запускайте файлы: Dos622_1.bat,...
C++ Инициализация std::tuple переменным числом аргументов Добрый вечер. Мне нужно инициализировать объект std::tuple, который является членом некоторого другого шаблонного класса с переменным числом аргументов. Есть такой код, который, естественно, не компилируется: template<typename...Arg> struct Base { Base() : NumElems(sizeof...(Arg)), mems(std::make_tuple(Arg...)){}//std::make_tuple(Arg...) - это то, что мне хотелось бы получить в... подробнее

Показать сообщение отдельно
SkaN2412
0 / 0 / 0
Регистрация: 29.07.2013
Сообщений: 4
29.07.2013, 04:40     Не могу создать ссылку на объект в массиве
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
class Row {
    
public:
    Row(){}
    Row( int l )
    {
        arr = new double[l];
        length = l;
    }
    
    double &operator []( int pointer )
    {
        return arr[pointer];
    }
    
    double mean()
    {
        double sum = 0;
        
        for ( int i = 0; i < length; i++ )
        {
            sum += arr[i];
        }
        
        return ( sum / length );
    }
    
    int countNeg()
    {
        int count = 0;
        
        for ( int i = 0; i < length; i++ )
        {
            if ( arr[i] < 0 )
            {
                count++;
            }
        }
        
        return count;
    }
    
    void absolute()
    {
        for ( int i = 0; i < length; i++ )
        {
            if ( arr[i] < 0 )
            {
                abs( arr[i] );
            }
        }
    }
    
    ~Row()
    {
        delete []arr;
    }
    
private:
    double* arr;
    int length;
};
 
class Matrix {
    
public:
    Matrix(){}
    Matrix( int h, int w )
    {
        matrix = new Row[h];
        for ( int i = 0; i < h; i++ )
        {
            matrix[i] = new Row(w);
        }
        width = w;
    }
    
    Row &operator []( int pointer )
    {
        return matrix[pointer];
    }
    
    double mean()
    {
        double sum = 0;
        
        for ( int i = 0; i < width; i++ )
        {
            sum += matrix[i].mean();
        }
        
        return ( sum / width );
    }
    
    bool maxNeg()
    {
        int max, pretender, i;
        
        for ( i = 0; i < width; i++ )
        {
            if ( matrix[i].countNeg() > max )
            {
                max = matrix[i].countNeg();
                pretender = i;
            }
        }
        
        return max;
    }
    
    void absolute()
    {
        for ( int i = 0; i < width; i++ )
        {
            matrix[i].absolute();
        }
    }
    
    ~Matrix()
    {
        delete []matrix;
    }
    
private:
    Row* matrix;
    int width;
};
Проблема в конструкторе второго класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
main.cpp: In constructor ‘Matrix::Matrix(int, int):
main.cpp:85:23: error: invalid user-defined conversion from ‘Row*’ to ‘const Row&[-fpermissive]
             matrix[i] = new Row(w);
                       ^
main.cpp:17:5: note: candidate is: Row::Row(int) <near match>
     Row( int l )
     ^
main.cpp:17:5: note:   no known conversion for argument 1 from ‘Row*’ to ‘int’
main.cpp:85:23: error: invalid conversion from ‘Row*’ to ‘int[-fpermissive]
             matrix[i] = new Row(w);
                       ^
main.cpp:17:5: error:   initializing argument 1 of ‘Row::Row(int)[-fpermissive]
     Row( int l )
     ^
Подозреваю, что где-то я накосячил с типами, но не могу понять где. Только начал учить плюсы, еще не знаю, как надо дебажить тут код, поэтому совсем не представляю, что делать все туториалы по ссылкам в инете показывают, что я все сделал правильно, но...
Полный скрипт можно скачать тут: http://ubuntuone.com/2HSwJJNP7f0Oa4io0yciST
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru