Ваш wordArray_
определяется как указатель на WordOccurrence
:
WordOccurrence *wordArray_
Таким образом, тип wordArray_[i]
относится к WordOccurrence
объекту. А для доступа к членам объекта вы должны использовать .
, а не ->
.
Проблема, с которой вы все еще сталкиваетесь, заключается в том, что вы пытаетесь установить непосредственно участников новых вхождений:
wordArray_[i].word_ = rhs.wordArray_[i].getWord();
wordArray_[i].num_ = rhs.wordArray_[i].getNum();
Теперь getWord()
и getNum()
являются общедоступными, но word_
и num_
являются частными для WordOccurence и поэтому невидимы для WordList
.
Самый простой способ сделать Wordlist другом WordOccurence:
class WordOccurence {
...
friend class WordList;
};
Гораздо более понятный способ - использовать конструктор копирования WordOccurences
:
WordList::WordList(WordList &rhs){
size_ = rhs.size_;
wordArray_ = new WordOccurrence[rhs.size_];
for(int i = 0; i < rhs.size_; ++i){
wordArray_[i] = rhs.wordArray_[i];
}
}
Теперь еще лучшим способом было бы определить wordArray_
как vector<WordOccurence>
вместо массива: вам больше не нужно было бы беспокоиться о его копии.