'array' is not a member of 'Planet'

Написал класс Planet, с помощью которого я должен считать некоторые данные из одного файла и записать в другой. При вызове метода .read_db происходит ошибка 'array' is not a member of 'Planet'. Что можно исправить?

//main
#include "lab2.hpp"
#include "lab2db1/lab2db1.cpp"

int main(){
    const int N = 100;
    Planet* array = new Planet;
    const char* filename = "dbase1.txt";
    int n;
    Planet::array.read_db(filename, array, N);
    return 0;
}

//lab2db1.cpp
#include "lab2db1.hpp"

Planet::Planet() { 
    Name = new char[0];
    Name[0] = '\0';
    Diameter = 0;
    Life = 0;
    Satellite = 0;
}
Planet::Planet(char* Name, int Diameter, int Life, int Satellite){
    this->Name= new char (std::strlen(Name)+1);
    std:strcpy(Name, Name);
    this->Diameter=Diameter;
    this->Life=Life;
    this->Satellite=Satellite;
}
int Planet::read_db(const char* filename, Planet* arr, int &n) { 
    std::ifstream fin(filename, std::ios::in);
    if (!fin){
        std::cout<<"Файла " << filename << " нет!" << std::endl;
        return 1;
    }
    fin >> n;
    for (int i = 0; i < n; i++){
        fin >> arr[i].Name >> arr[i].Diameter >> arr[i].Life >> arr[i].Satellite;
    }
    fin.close();
    return 0;
 }
 int Planet::write_db(const char* filename, Planet* arr, int n){
    std::ofstream fin(filename, std::ios::out);
    if (!fin){
        std::cout<<"Файла " << filename << " нет!" << std::endl;
        return 1;
    }
    for (int i=0; i<n; i++){
        fin << arr[i];
    }
    fin.close();
    return 0;
 }
 std::ostream& operator<<(std::ostream &out, Planet &planet){
    out << planet.Name << ' ' << planet.Diameter << ' ' << planet.Life << ' ' << planet.Satellite << '\n';
    return out;
 }
Planet::~Planet() { delete[] Name; }

//lab2db1.hpp
#include <iostream>
#include <fstream>
#include <cstring>

class Planet{
private:
    char* Name;
    int Diameter;
    int Life;
    int Satellite;
public:
    friend std::ostream& operator<<(std::ostream &, Planet &);
    char* getName(){
        return Name;
    };
    int getDiameter(){
        return Diameter;
    };
    int getLife(){
        return Life;
    };
    int getSatellite(){
        return Satellite;
    };
    void setName(char* Name){
        this->Name=Name;
    }
    void setDiameter(int Diameter){
        this->Diameter=Diameter;
    }
    void setLife(int Life){
        this->Life=Life;
    }
    void setSatellite(int Satellite){
        this->Satellite=Satellite;
    }
    Planet();
    Planet (char* Name, int Diameter, int Life, int Satellite);
    int read_db(const char* FilenameFrom, Planet* Arr, int &N);
    int write_db(const char* FilenameTo, Planet* Arr, int N);
    ~Planet();
};

Ответы (1 шт):

Автор решения: FLIIINK_

Когда ты пишешь Planet::array ты пытаешься обратиться к статическому полю класса Planet с названием array, но такого у тебя нет. Если ты хочешь вызвать метод у объекта класса то тебе нужно просто указать имя объекта

array.read_db(filename, array, N);
→ Ссылка