#include <iostream>

using namespace std;

//vocabulary: class, accessor, mutator, setter, getter, constructor,
//scope, scope resolution operator, public, private, default
//parameter, member function, encapsulation, constructor

/* As discussed in class, member function definitions do not belong
 * inside the class definition. Why did I violate that rule during
 * class? 
 */

class Pet {
public:
    Pet(int numLegs);
    void setLegs(int numLegs);
    int getLegs(){return legs;} //ACCESSOR getters
    char* getName(){return name;}
private:
    int legs;
    char name[30];
};

void Pet::setLegs(int numLegs){
    legs = numLegs;
} //MUTATOR setters

Pet::Pet(int numLegs)
{
    cout << "inside constructor\n";
    legs = numLegs;
}

int main(){

    Pet p(5);
    Pet p2 = p; //what does this constructor print? Why?

    cout << p.getLegs() <<endl;

    //p.legs = 9; ERROR legs are private
    p.setLegs(3);
    cout << p.getLegs() <<endl;

    return 0;
}

