//: C14:Protected.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// The protected keyword
#include <fstream>
using namespace std;/* Questo programma è un esempio di utilizzo delle classi "derivate", ovvero classi che sfruttano l'ereditarietà tra classi.*/
class Base
{
int i;
protected:/* Tutto ciò che viene definito sotto la keyword "protected" è visibile anche dalla classe derivata o figlia e diviene come un suo attributo privato (quindi accessibile solo attraverso metodi della classe figlia).*/
int read() const { return i; }
void set(int ii) { i = ii; }
public:
Base(int ii = 0) : i(ii) {}
int value(int m) const { return m*i; }};
class Derived : public Base
{
int j;
public:
Derived(int jj = 0) : j(jj) {}
void change(int x) { set(x); }};
int main()
{
Derived d;
d.change(10);} ///:~