2018年7月30日 星期一

Add a Copy Constructor to an Existing Class

/* Dog.h */


#ifndef __DOG_H__
#define __DOG_H__
#include <string>
using namespace std;

class Dog {
private:
    string name;
    int age;
public:
        Dog(string name, int age) : name{name}, age{age} { }

//---- WRITE YOUR COPY CONSTRUCTOR BELOW THIS LINE
        Dog(Dog&);


//---- WRITE YOUR COPY CONSTRUCTOR ABOVE THIS LINE
    string get_name() {return name; }
    void set_name(string n) {name = n; }
    int get_age() {return age; }
    void set_age(int a) { age = a;}
    int get_dog_years() { return age * 7; }
    string speak() { return "Woof";}
};
#endif




========================================

/* exercise.cpp */



// ----THIS FILE IS EMPTY----
#include "Dog.h"


Dog::Dog(Dog &dog):name{dog.name}, age{dog.age}{
    printf("Copy Constructor");
}

Add an Overloaded Constructor to an Existing Class

/* Dog.h */

// THIS FILE IS EMPTY ----
#include "Dog.h"

Dog::Dog(std::string name1, int age1){
   
    name = name1;
    age = age1;
}



========================================

/* exercise.cpp */


#ifndef __DOG_H__
#define __DOG_H__
#include <string>
using namespace std;

class Dog {
private:
    string name;
    int age;
public:

//---- WRITE YOUR OVERLOADED CONSTRUCTOR BELOW THIS LINE

Dog();
Dog(string name1, int age1);

//---- WRITE YOUR OVERLOADED CONSTRUCTOR ABOVE THIS LINE
    string get_name() {return name; }
    void set_name(string n) {name = n; }
    int get_age() {return age; }
    void set_age(int a) { age = a;}
    int get_dog_years() { return age * 7; }
    string speak() { return "Woof";}
};
#endif

Add a Default Constructor to an Existing Class

/* Dog.h */


#ifndef __DOG_H__
#define __DOG_H__
#include <string>
using namespace std;

class Dog {
private:
    string name;
    int age;
public:
//---- WRITE YOUR NO-ARGS CONSTRUCTOR BELOW THIS LINE----
Dog();


//---- WRITE YOUR NO_ARGS CONSTRUCTOR ABOVE THIS LINE----
//---- DO NOT MODIFY THE CODE BELOW THIS LINE


    string get_name() {return name; }
    void set_name(string n) {name = n; }
    int get_age() {return age; }
    void set_age(int a) { age = a;}
    int get_dog_years() { return age * 7; }
    string speak() { return "Woof";}
};


#endif



========================================

/* exercise.cpp */


// THIS FILE IS EMPTY----
#include "Dog.h"
Dog::Dog(){
    name = "None";
    age = 0;
}

2018年7月29日 星期日

Add more public methods to an existing class


/* Dog.h */

#ifndef __DOG_H__
#define __DOG_H__
#include <string>
using namespace std;

class Dog {
private:
    string name;
    int age;
public:

    string get_name() {return name; }
    void set_name(string n) {name = n; }
    int get_age() {return age; }
    void set_age(int a) { age = a;}
    //---- WRITE YOUR CLASS FUNCTIONS BELOW THIS LINE----
    int get_human_years();
    string speak();
   
    //---- WRITE YOUR CLASS FUNCTIONS ABOVE THIS LINE----
};
#endif

========================================

/* exercise.cpp */

// THIS FILE IS EMPTY----
#include "Dog.h"

int Dog::get_human_years(){return  7*age;}
std::string Dog::speak(){
        return "Woof";
    }

Adding public methods that access private class attributes


/* Dog.h */

#ifndef _DOG_H_

#define _DOG_H_
#include <string>


class Dog{
private: 

    std::string name;
    int age;
public:
    void set_name(std::string name1);

    std::string get_name();



    void set_age(int ag);

    int get_age();
};


#endif



========================================

/* exercise.cpp */

#include "Dog.h"


void Dog::set_name (std::string name1){
    name = name1;
}

std::string Dog::get_name() {return name;}



int Dog::get_age() {return age;}

void Dog::set_age (int ag){
    age = ag;
}

2018年7月28日 星期六

Creating and Accessing Object

#include "Dog.h"


Dog test_dog() {
//---- WRITE YOUR CODE BELOW THIS LINE----
Dog spot;
spot.name = "Spot";
spot.age = 5;



//---- WRITE YOUR CODE ABOVE THIS LINE----
//---- DO NOT CHANGE THE CODE BELOW----
    return spot;
}

2018年7月21日 星期六

Using C++ Strings Exercise 2

#include <iostream>
#include <string>
using namespace std;

void cpp_strings() {
   
    string journal_entry_1 {"Isaac Newton"};
    string journal_entry_2 {"Leibniz"};
   
    //----DO NOT MODIFY THE CODE ABOVE THIS LINE----
    //----WRITE YOUR CODE BELOW THIS LINE----
    journal_entry_1.erase(0,6);
   
    if(journal_entry_1 > journal_entry_2)
    journal_entry_1.swap(journal_entry_2);
    //----WRITE YOUR CODE ABOVE THIS LINE----
    //----DO NOT MODIFY THE CODE BELOW THIS LINE----
   
    cout << journal_entry_1 << "\n" << journal_entry_2;
}