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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Leoleshucov008
14 / 14 / 1
Регистрация: 23.02.2010
Сообщений: 221
#1

<method name> is not a member of <class> при любом типе возвращаемого значения, кроме int - C++

06.06.2013, 08:03. Просмотров 368. Ответов 2
Метки нет (Все метки)

Проблема в следующем, есть класс описанный в .h файле, методы класса описаны в .cpp, при компиляции ошибка:
C++
1
[BCC32 Error] BMPImage.cpp(3): E2316 'BMPImage::GetImage()' is not a member of 'BMPImage'
Заметил, что если менять тип возвращаемого значения с char** на int то ошибка исчезает. Так же при смене типа возвращаемого значения у других методов, возникает та же ошибка для них.
BMPImage.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#pragma requre_once
#include <windows.h>
#include <stdio.h>
class BMPImage {
    public:
    char** GetImage();
    int GetWidth();
    int GetHight();
 
    //Load image from path
    bool load(char*);
    //Destructor
    BMPImage();
    ~BMPImage();
    private:
        BITMAPFILEHEADER fileHeader;
        BITMAPINFOHEADER infoHeader;
        char **image;
};
BMPImage.cpp
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
#include <BMPImage.h>
#include <stdio.h>
BMPImage::GetImage() {
    return image;
}
 
BMPImage::GetWidth() {
    return infoHeader.biWidth;
}
 
BMPImage::GetHight() {
    return infoHeader.biHeight;
}
 
// Load image from path
BMPImage::load(char *path) {
    // File prt
    FILE *pFile;
    pFile = fopen(path, "rb");
    if (pFile == NULL) {
        // Can't open file
        return 0;
    }
    // BITMAPFILEHEADER read
    fread(&fileHeader, sizeof(BITMAPFILEHEADER), 1, pFile);
    // BITMAPINFOHEADER read
    fread(&infoHeader, sizeof(BITMAPINFOHEADER), 1, pFile);
    // Set cursor to begin of image
    fseek(pFile, (long)fileHeader.bfOffBits, SEEK_SET);
    // Alloc memory to image
    image = new char*[infoHeader.biHeight];
    for (int i = 0; i < infoHeader.biHeight; i++) {
        image[i] = new char[infoHeader.biWidth];
    }
    // Write image to array
    for (int y = infoHeader.biHeight - 1; y >= 0; --y) {
        fread(image[y], (infoHeader.biBitCount / 8) * infoHeader.biWidth, 1,
            pFile);
        fseek(pFile, 4 - infoHeader.biWidth % 4, SEEK_CUR);
    }
    fclose(pFile);
    return 1;
}
 
BMPImage::BMPImage() {
    image = 0;
}
 
BMPImage::~BMPImage() {
    if (this->image == NULL) {
        return;
    }
    for (int i = 0; i < infoHeader.biHeight; i++) {
        delete[]image[i];
    }
    delete[]image;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 08:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос <method name> is not a member of <class> при любом типе возвращаемого значения, кроме int (C++):

Почему у функции main() тип возвращаемого значения - int? - C++
Здравствуйте! В языке C# main &quot;свободный&quot;: void main (). Логично, поскольку программа - это набор операторов, которые в общем смысле ничего...

Create a programm that creates an object of created class Time and tests the member functions of class - C++
Time Class Create a class called Time that might be used to represent time. 1. Your class should include three data...

'fr.java': Ошибка #: 300 : method getObject(int) not found in class java.lang.String строка 33, символ 18 - Java
'fr.java': Ошибка #: 300 : method getObject(int) not found in class java.lang.String строка 33, символ 18

[C++ Error] Unit1.cpp(50): E2316 '_fastcall TForm1::Vector(int,int,int,int)' is not a member of 'TForm1' - C++ Builder
есть событие набраное в Unit.cpp, при запуске программы выбивается ошибка: Unit1.cpp(50): E2316 '_fastcall...

Ошибка E2333: Class member declared outside its class - C++ Builder
Доброго времени суток,подскажите в чём дело? //--------------------------------------------------------------------------- #include...

Cannot convert method group 'to_get' to non-delegate type 'int'. Did you intend to invoke the method? - C#
При обращении в методе объекта к методу объекта другого класса, вываливается такая ошибка. Причём код всёравно работает без косяков ...

2
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
06.06.2013, 08:12 #2
выделим только необходимое:
C++
1
2
3
4
5
char** GetImage();//Объявление
//...
BMPImage::GetImage() {//Реализация.
    return image;
}
Где возвращаемое значение?

Добавлено через 3 минуты
Собственно, других функций это тоже касается(ну кроме конструкторов/деструкторов)
1
Leoleshucov008
14 / 14 / 1
Регистрация: 23.02.2010
Сообщений: 221
06.06.2013, 08:13  [ТС] #3
Croessmah, Спасибо, понял как нужно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 08:13
Привет! Вот еще темы с ответами:

Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') - C++
Есть такие строки: std::list&lt;c_bullet*&gt; Bullets; ... for(auto i = Bullets.begin(); i != Bullets.end(); /**/) В строке цикла вот...

Что означает ошибка pascal: function header doesn't match any method of this class "fig.draw(Smallint,Smallint,Smallint,Smallint,Smallint,Small int - Pascal
Что это значит?

Ошибка при компиляции Entry method 'Main' in class 'Program' in namespace 'Rextester' not found - C#
Вечер добрый! Товарищи, помогите поправить ошибку в коде, не могу сообразить что не так using System; using...

Compile error method data member not found - MS Access
Private Sub cmbGroup_AfterUpdate() Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Set cn = New ADODB.Connection Set rs = New...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru