1
operator<<
オーバーロードの問題が発生しています。クラスのプライベート変数にアクセスすることができません。変数はプライベート変数コンパイラエラー。これは私の現在のコードです:あなたの<<
オペレータは、このprotoypeをフレンドオペレータ<<オーバーロードの問題
#ifndef LIBRARY_H
#define LIBRARY_H
#define BookNotFound 1
#include "Book.h"
#include <iostream>
#include <cstdlib>
using namespace std;
namespace cs52{
class Library{
public:
Library();
void newBook(string title, string author);
void checkout(string title, string author) {throw (BookNotFound);}
void returnBook(string title, string author) {throw (BookNotFound);}
friend Library operator << (Library& out, const Library & l);
private:
Book myBooks[ 20 ];
int myNumberOfBooksSeenSoFar;
};
}
#endif
私はすべきことを知っています。なぜなら、myNumはまだコンパイル時にプライベートであると言っているので、私は混乱しています。それが役立つなら、ここにエラーコードがあります。 C:\ Users \ Devin \ Documents \ C++ SMCCLASS \ LibrarySystem \ library.h ||関数 'cs52 :: Library operator <<(std :: ostream&、const cs52 :: Library&)':| C:\ Users \ Devin \ Documents \ C++ SMCCLASS \ LibrarySystem \ library.h | 23 |エラー: 'int cs52 :: Library :: myNumberOfBooksSeenSoFar'は非公開です。 –
@Devin:本当ですか?関数のプロトタイプは、間違っています。 –
@Devin:更新された答えを確認してください、あなたの問題だと思います。パラメータの種類に注意してください! –