Форум программистов, компьютерный форум 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> #include<conio.h> #include<math.h> #define n 4 #define m 4 void main() {
C++ Создание менеджера памяти с++
У меня имеется вопрос: программа выделяет запрашиваемые пользователем блоки памяти. Затем некоторые из этих блоков удаляются (получается "дырявое" заполнение памяти). Пользователь запрашивает выделение нового блока другого размера. Как должна выглядеть программа, ищущая наиболее подходящий по размеру участок памяти? (при возможности программа должна выделить память в наименьшей "дырке")
C++ Передача динамического массива строк в функцию и работа с ним http://www.cyberforum.ru/cpp-beginners/thread791014.html
Доброго времени суток. Помогите, пожалуйста. Мне нужно в программе объявить динамический массив строк, затем в пользовательской функции его заполнять. У меня вот такие куски кода, связанные с этим: //Function_start void cropsentence(char *s, char *p) //p - требуемый массив { ... for (int i = 0; i <= 2; i++) p=temp; ... }
C++ Сортировка массива Отсортировать время по возрастанию. пожалуйста помогите. Часы(hours) - от 0 до 23 Минуты (minutes) - от 0 до 60 секунды (seconds) - от 0 до 60 Пример Входные данные 10 20 30 7 30 00 подробнее

Показать сообщение отдельно
Denis.
0 / 0 / 0
Регистрация: 02.09.2012
Сообщений: 20
20.02.2013, 19:28     Ошибка при использовании функции-члена
Доброго времени суток!

При использовании функции-члена 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';
    }
}
}
В чём проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru