Тип возвращаемого значения не соответствует функции (указатель на массив)C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Тип возвращаемого значения не соответствует функции (указатель на массив)

Сообщение Anonymous »

Я думаю, что меня сбивают с толку указатели, но я могу поклясться, что эти указатели совпадают.
мой заголовочный файл

Код: Выделить всё

#ifndef _COMPANY_H
#define _COMPANY_H
#include "Shop.h"
#include 
#include 
#define MAX_SHOPS_NUMBER 10
#define MAX_NAME_LENGTH 10

class Company {
private:
std::string name;
Shop* shops[MAX_SHOPS_NUMBER];
int shopsNumber;
public:
Company();
Company(std::string name, Shop* shops[], int shopsNumber);
std::string getName() const;
Shop** getShops() ; //problem here
int getShopsNumber() const;
void setName(std::string name);
void setShops(Shop* shops[]);
void setShopsNumber(int shopsNumber);
void addShop(Shop* newShop);
void printShopsByName();
void printShopsByDay();
~Company();
};

#endif
cpp-файл

Код: Выделить всё

#include "Company.h"
#include 
#include 
#define MAX_SHOPS_NUMBER 10
#define MAX_NAME_LENGTH 10

//default c'tor
Company::Company() {
name = "~";
Shop s;
*shops = new Shop[MAX_SHOPS_NUMBER];
shopsNumber = 0;
}
//c'tor
Company::Company(std::string newName, Shop* shops[], int shopsNumber) {
if (newName.length() < MAX_NAME_LENGTH) {
std::cout shopsNumber = shopsNumber;
}
//d'tor
Company::~Company() {
delete[] shops;
}
std::string Company::getName() const {
return name;
}
Shop** Company::getShops() {
return *shops; //says return value type does not match function
}

мой getShops продолжает выдавать мне ошибки, единственное, что не выдает мне ошибку, это если я пишу

Код: Выделить всё

Shop* Company::getShops() {
return *shops;
что, я почти уверен, неверно, потому что я возвращаю указатель на массив
я попробовал изменить тип возвращаемой переменной в конструкции на shop** shop вместо shop* shop[] и я несколько раз играл с синтаксисом, но больше ничего не помогало.

Подробнее здесь: https://stackoverflow.com/questions/792 ... r-to-array
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»