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

Ошибка при использовании функции-члена - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Умножение длинных чисел http://www.cyberforum.ru/cpp-beginners/thread791065.html
Найти произведение двух длинных чисел(целые числа, десятичная запись которых может содержать до 255 цифр). Нужно решить при помощи функций, без классов. Или подкиньте идею, а то не знаю как это...
C++ Циклическая форма перестановки массива Написать код программы формирования циклической формы перестановки любого массива. Помогите написать простейшую версию программы. Заранее большое спасибо. http://www.cyberforum.ru/cpp-beginners/thread791054.html
Функции. Найти матрицу, получающуюся перестановкой столбцов C++
Дана целочисленная матрица размера m х n. Найти матрицу, получающуюся перестановкой столбцов (первого с последним, второго с предпоследним и т.д.). вот программа: #include<stdio.h>...
C++ Создание менеджера памяти с++
У меня имеется вопрос: программа выделяет запрашиваемые пользователем блоки памяти. Затем некоторые из этих блоков удаляются (получается "дырявое" заполнение памяти). Пользователь запрашивает...
C++ Передача динамического массива строк в функцию и работа с ним http://www.cyberforum.ru/cpp-beginners/thread791014.html
Доброго времени суток. Помогите, пожалуйста. Мне нужно в программе объявить динамический массив строк, затем в пользовательской функции его заполнять. У меня вот такие куски кода, связанные с этим:...
C++ Сортировка массива Отсортировать время по возрастанию. пожалуйста помогите. Часы(hours) - от 0 до 23 Минуты (minutes) - от 0 до 60 секунды (seconds) - от 0 до 60 Пример Входные данные 10 20 30 7 30 00 подробнее

Показать сообщение отдельно
Denis.
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 20

Ошибка при использовании функции-члена - C++

20.02.2013, 19:28. Просмотров 568. Ответов 17
Метки (Все метки)

Доброго времени суток!

При использовании функции-члена print() с объектом класса bin_image , созданом конструктором по умолчанию возникает ошибка:
cpp.cpp:31:5: ошибка: запрос элемента «print» в «b2», имеющего не классовый тип «bin_image()»
Однако, если использовать эту функцию с объектом, созданном конструктором со значением, всё проходит гладко.

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
/*
 
 
 
*/
 
#include <iostream>
#include <vector>
#include <cstdlib>
 
class bin_image
{
    public:
        bin_image (int h, int w);   
        bin_image ();
        void print();
        
    private:
        int high;
        int width;
        std::vector< std::vector<bool> > v;
};
 
// main is here <-----------------
int main()
{
    bin_image b1(10, 10);
    bin_image b2();
    
    b1.print(); // Нет проблем
    b2.print(); // Возникает ошибка
    
    return 0;
}
 
// 1st bin_image constructor
bin_image::bin_image (int h, int w)
    :high(h), width(w)
{
//  if(h<0 || w<0)
//      error("vector parametre(s) is negative");
// vec initialization...
    for(int c=0; c<width; c++)
    {
        std::vector<bool> vv;
        v.push_back(vv);
        for(int cc=0; cc<high; cc++)
        {
            v[c].push_back(rand()%2);
        }
    }
}
 
// 2nd bin_image constructor (constructor by default)
bin_image::bin_image ()
    :high(0), width(0)
{   
    std::vector<bool> vv;
        v.push_back(vv);
}
 
// bin_image print funcrion
void bin_image::print()
{
    int wi = width;
    int hi = high;
 
    if(v.size() > 0)
        hi = v[0].size();
 
    for(int c=0; c<hi; c++)
    {
        for(int cc=0; cc<wi; cc++)
            std::cout << v[cc][c] << ' ';
        std::cout << '\n';
    }
}
}
В чём проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru