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

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

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

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

06.06.2013, 08:03. Просмотров 340. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 08:03     <method name> is not a member of <class> при любом типе возвращаемого значения, кроме int
Посмотрите здесь:

Тип возвращаемого значения C++
C++ Функции (вызов и тип возвращаемого значения)
Тип возвращаемого значения функции C++
C++ Назначение возвращаемого значения функцией
C++ Ошибка компиляции "forbids in-class initialization of non-const static member"
Тип возвращаемого значения C++
C++ Request for member '.' in '.', which is of non-class type
C++ Составить программу вычисления значения функции при любом значении а
Widgets, ошибка: 'class Ui::MainWindow' has no member named <...> C++
C++ Использование int или void в качестве возвращаемого типа для main()
Тип возвращаемого значения C++
Допустима ли запись вида void method(T *& member)? (ссылка на указатель) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12690 / 7164 / 799
Регистрация: 27.09.2012
Сообщений: 17,658
Записей в блоге: 2
Завершенные тесты: 1
06.06.2013, 08:12     <method name> is not a member of <class> при любом типе возвращаемого значения, кроме int #2
выделим только необходимое:
C++
1
2
3
4
5
char** GetImage();//Объявление
//...
BMPImage::GetImage() {//Реализация.
    return image;
}
Где возвращаемое значение?

Добавлено через 3 минуты
Собственно, других функций это тоже касается(ну кроме конструкторов/деструкторов)
Leoleshucov008
13 / 13 / 1
Регистрация: 23.02.2010
Сообщений: 221
06.06.2013, 08:13  [ТС]     <method name> is not a member of <class> при любом типе возвращаемого значения, кроме int #3
Croessmah, Спасибо, понял как нужно.
Yandex
Объявления
06.06.2013, 08:13     <method name> is not a member of <class> при любом типе возвращаемого значения, кроме int
Ответ Создать тему
Опции темы

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