朋友 ostream operator << 不会访问私有字段
Friend ostream operator << wont acces private fields
它只是不会访问私有字段
.hpp:
private:
std::string model;
public:
Piekarnik &operator << (const Ciasto &ciasto);
friend std::ostream &operator<<(std::ostream &os, const Ciasto &ciasto);
.cpp:
Piekarnik &Piekarnik::operator<<(const Ciasto &ciasto)
{
append(ciasto);
return *this;
}
ostream &operator<<(ostream &os, const Piekarnik &piekarnik) // dwuargumentowy;
{
os<<"Piekarnik (model: "<<piekarnik.model<<", temperatura: " << piekarnik.obecnyProgram.temperatura <<", pieczenie: " << EnumToString(piekarnik.obecnyProgram.pieczenie) << ", wlozone ciasto: " << EnumToString(piekarnik.wlozoneCiasto.rodzaj);
return os<<")";
}
error: 'std::string Piekarnik::model' is private
将您的好友声明更改为
friend std::ostream &operator<<(std::ostream &os, const Piekarnik&);
它只是不会访问私有字段
.hpp:
private:
std::string model;
public:
Piekarnik &operator << (const Ciasto &ciasto);
friend std::ostream &operator<<(std::ostream &os, const Ciasto &ciasto);
.cpp:
Piekarnik &Piekarnik::operator<<(const Ciasto &ciasto)
{
append(ciasto);
return *this;
}
ostream &operator<<(ostream &os, const Piekarnik &piekarnik) // dwuargumentowy;
{
os<<"Piekarnik (model: "<<piekarnik.model<<", temperatura: " << piekarnik.obecnyProgram.temperatura <<", pieczenie: " << EnumToString(piekarnik.obecnyProgram.pieczenie) << ", wlozone ciasto: " << EnumToString(piekarnik.wlozoneCiasto.rodzaj);
return os<<")";
}
error: 'std::string Piekarnik::model' is private
将您的好友声明更改为
friend std::ostream &operator<<(std::ostream &os, const Piekarnik&);