Yurttas/PL/OOL/Cplusplus/F/04/02/03/00/Animal.cpp
Jump to navigation
Jump to search
1/*
2 Copyright(C) 2001
3 All Rights Reserved. Salih Yurttas, ZCubes, BitsOfCode Software Systems, Inc..
4
5 Permission to use, copy, modify, and distribute this
6 software and its documentation for EDUCATIONAL purposes
7 and without fee is hereby granted provided that this
8 copyright notice appears in all copies.
9
10 date : June 1, 2001.
11 author : Salih Yurttas.
12
13 Animal.cpp
14*/
15
16#include <cstring>
17
18#include <iostream>
19
20using namespace std;
21
22#include "Animal.h"
23
24Animal::
25Animal() {
26 name = new char[1];
27 *name = '\0';
28
29 age = 0;
30}
31
32Animal::
33Animal(const Animal& a) {
34 name = new char[strlen(a.name)+1];
35 strcpy(name,a.name);
36 age = a.age;
37}
38
39Animal::
40~Animal() {
41 delete [] name;
42}
43
44Animal&
45Animal::
46operator=(const Animal& a) {
47 if(this==&a) return *this;
48
49 delete [] name;
50
51 name = new char[strlen(a.name)+1];
52 strcpy(name, a.name);
53
54 age = a.age;
55
56 return *this;
57}
58
59char*
60Animal::
61get_name() const {
62 return name;
63}
64
65int
66Animal::
67get_age() const {
68 return age;
69}
70
71void
72Animal::
73set_name(const char* s) {
74 delete [] name;
75 name = new char[strlen(s)+1];
76 strcpy(name,s);
77}
78
79void
80Animal::
81set_age(const int i) {
82 age = i;
83}
84
85void
86Animal::
87print() const {
88 cout << "Name: " << name << endl;
89 cout << "Age: " << age << endl;
90 cout << endl;
91}