crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Qt Creator якобы не видит описание функции класса
kvak
  опции профиля:
сообщение 4.7.2015, 15:09
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 51
Регистрация: 5.5.2010
Пользователь №: 1690

Спасибо сказали: 1 раз(а)




Репутация:   0  


Здравствуйте. В этот тесте цель заполнить массив класса и вернуть его из функции класса как указатель на него. Потом вывести, проверить.
Вопросы:
1. Правильно ли возвращен указатель на массив в самом конце return WPlanMap;
Гуглил, нашел такой пример.
Получается я возвращаю сам массив как-бы, но так как тип возвращаемого
значение функции GetProgressiveMatrix указатель, возвращается не сам массив, а указатель? Или как это понимать?
2. Почему написано Expected a declaration в описании функции BYTE (*MyProg::GetProgressiveMatrix(int n))[8], типа ошибка, хотя все компилируется нормально и отрабатывает?
(см. скрин)

Вот весь код программа. Состоит из двух файлов:
//Header.h
#ifndef Test_H
#define Test_H
#include "ui_USEROK.h"
#include <QtGui>
#include <QtCore>
class MyProg : public QWidget, public Ui::MyProg
{
    Q_OBJECT
public:
    MyProg(QWidget* pwgt = 0, Qt::WindowFlags f = 0);
    BYTE (*GetProgressiveMatrix(int n))[8];
public slots:
    void Deal3Start();
protected:
    BYTE WPlanMap[4][8];
};
#endif



//Source.cpp
#include "Header.h"
#include <cmath>
#include <cstdlib>
#include <cstdio>
MyProg::MyProg(QWidget* pwgt,Qt::WindowFlags f) : QWidget(pwgt,f){
    setupUi(this);
    setFixedSize(700, 600);
    connect(Deal3Button, SIGNAL(clicked()), this, SLOT(Deal3Start()));
}
void MyProg::Deal3Start(){
    QString ResultStr = "";
    QString TempStr;
    BYTE (*pWPlanMap)[8];
    pWPlanMap = GetProgressiveMatrix(TestBox->value());
    //Вывод массива в строку
    for (int i = 0; i < 4; ++i){
        for (int j = 0; j < 8; ++j){
            ResultStr = ResultStr + TempStr.setNum(pWPlanMap[i][j]) + ",";
        }
        ResultStr = ResultStr + '\n';
    }
    TestResult->setText(ResultStr); //Вывод результата на форму в QTextEdit
}
BYTE (*MyProg::GetProgressiveMatrix(int n))[8] //ТУТ СРЕДА РАЗРАБОТКИ ПИШЕТ, ЧТО  Expected a declaration (см. скрин)
{
    //Заполнение массива c увеличением следующего значения на 1
    for (int i = 0; i < 4; ++i){
        for (int j = 0; j < 8; ++j){
            WPlanMap[i][j] = n+j+(i*8);
        }
    }
    return WPlanMap;
}

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 16.11.2024, 0:15