I have three files, Person.h, Person.cpp, and my main.cpp. In Person.h I have all my classes and the .cpp part contains the actual implementation. My issue is that I'm getting two error messages when I try to read through an array created by one of my functions and pointed at by private data member *subjects.
The error messages reads:
Severity Code Description Project File Line Error C3867 'Student::myarray1': non-standard syntax; use '&' to create a pointer to member lab_10 c:\users\shireen\documents\visual studio 2015\projects\lab_10\lab_10\main.cpp 67
Severity Code Description Project File Line Error C2109 subscript requires array or pointer type lab_10 c:\users\shireen\documents\visual studio 2015\projects\lab_10\lab_10\main.cpp 67
and my actual code.
main.cpp
#include"Person.h"
#include<string>
#include<iostream>
using namespace std;
int main()
{
    Student *pointer1;
    Staff *pointer2;
    string name, gender;
    int age, studentno, subs;
    pointer1 = new Student[4];
    pointer2 = new Staff[2];
    for (int i = 1; i < 5; i++)
    {
        cout << "please enter the name of student " << i << endl;
        cin >> name;
        cout << "please enter the age of student " << i << endl;
        cin >> age;
        cout << "please enter the gender of student " << i << endl;
        cin >> gender;
        cout << "please enter student " << i << "'s student number" << endl;
        cin >> studentno;
        cout << "please enter the number of subjects taken by student " << i << endl;
        cin >> subs;
        pointer1[i].set_name(name);
        pointer1[i].set_age(age);
        pointer1[i].set_gender(gender);
        pointer1[i].set_StudentNumber(studentno);
        pointer1[i].set_NumberOfSubjects(subs);
        pointer1[i].myarray1(subs);
    }
    for (int i = 1; i < 3; i++)
    {
        cout << "please enter the name of Staff member " << i << endl;
        cin >> name;
        cout << "please enter the age of staff member " << i << endl;
        cin >> age;
        cout << "please enter the gender of staff member " << i << endl;
        cin >> gender;
        cout << "please enter the number of subjects taught by staff member " << i << endl;
        cin >> subs;
        pointer2[i].set_name(name);
        pointer2[i].set_age(age);
        pointer2[i].set_gender(gender);
        pointer2[i].set_NumberOfSubjects(subs);
        pointer2[i].myarray2(subs);
    }
    for (int i = 1; i < 5; i++)
    {
        pointer1[i].get_name();
        pointer1[i].get_StudentNumber();
        cout << "Student name: " << name << endl;
        cout << "Student age: " << age << endl;
        for (int j = 0; j < 4; j++)
        {
            string *word;
            pointer1[i].myarray1[j] = word;
            cout << word << endl;
        }
    }
    system("PAUSE");
    return 0;
Person.h
#ifndef _PERSON_H_
#define _PERSON_H_
#include <string>
#include <iostream> 
using namespace std;
class Person
{
private:
    string name;
    int age;
    string gender;
public:
    Person();
    ~Person();
    void set_name(string n);
    void set_age(int a);
    void set_gender(string g);
    string get_name();
    int get_age();
    string get_gender();
};
class Staff : public Person
{
private:
    int NumberOfSubjects;
    string *Subjects;
public:
    Staff();
    ~Staff();
    void set_NumberOfSubjects(int ns);
    int get_NumberOfSubjects();
    string myarray2(int ns);
};
class Student : public Person
{
private:
    int StudentNumber;
    int NumberOfSubjects;
    string *Subjects;
public:
    Student();
    ~Student();
    bool set_StudentNumber(int sn);
    int get_StudentNumber();
    void set_NumberOfSubjects(int ns);
    int get_NumberOfSubjects();
    string myarray1(int ns);
};
#endif _PERSON_H
Person.cpp
#include "Person.h"
Person::Person() {}
void Person::set_name(string n)
{
    name = n;
}
void Person::set_age(int a)
{
    age = a;
}
void Person::set_gender(string g)
{
    gender = g;
}
string Person::get_name() { return name; }
int Person::get_age() { return age; }
string Person::get_gender() { return gender; }
Person::~Person() {}
//staff
Staff::Staff() {}
void Staff::set_NumberOfSubjects(int ns)
{
    NumberOfSubjects = ns;
}
int Staff::get_NumberOfSubjects() { return NumberOfSubjects; }
string Staff::myarray2(int NumberOfSubjects)
{
    Subjects = new string[NumberOfSubjects];
    for (int i = 0; i < NumberOfSubjects; i++)
    {
        cout << "please enter the number of subjects taught" << endl;
        cin >> Subjects[i];
        return Subjects[i];
    }
}
Staff::~Staff()
{
    delete[] Subjects;
}
///student
Student::Student() {}
bool Student::set_StudentNumber(int sn)
{
    StudentNumber = sn;
    if (sn<0 || 100>sn)
    {
        cout << "This is not a valid student number" << endl;
        system("PAUSE");
        return false;
    }
}
int Student::get_StudentNumber() { return StudentNumber; }
void Student::set_NumberOfSubjects(int ns)
{
    cout << "Please enter the number of subjects: " << endl;
    cin >> ns;
    NumberOfSubjects = ns;
}
int Student::get_NumberOfSubjects() { return NumberOfSubjects; }
string Student::myarray1(int NumberOfSubjects)
{
    string *sub_Ptr;
    Subjects = new string[NumberOfSubjects];
    for (int i = 0; i < NumberOfSubjects; i++)
    {
        cout << "Please enter the name of the subject: " << endl;
        cin >> Subjects[i];
        sub_Ptr = &Subjects[i];
        return *sub_Ptr;
    }
}
Student::~Student()
{
    delete[] Subjects;
}
 
     
     
     
     
    