p.339의 상속관련 예제입니다. 

● human.h

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

#ifndef HUMAN_H
#define HUMAN_H

class Human
{
	protected:
		string name;
		int age;

	public:
		Human();
		Human(string name, int age);
		~Human();
		void setName(string v_name);
		string getName(void);
		void setAge(int v_age);
		int getAge(void);
		void print(void);
};

#endif

● human.cpp
#include "human.h"

Human::Human()
{
	/* Default constructor */
	cout << "Human default constructor" << "\n";
}

Human::Human(string name, int age)
{
	setName(name);
	setAge(age);	

	cout << "Human second constructor" << "\n";
}

Human::~Human()
{
	/* Do nothing */  
	cout << "Human default destructor" << "\n";
}

void Human::setName(string v_name)
{
	name = v_name;
	return;
}

string Human::getName()
{
	return name;
}

void Human::setAge(int v_age)
{
	age = v_age;
	return;
}

int Human::getAge()
{
	return age;
}

void Human::print(void)
{
	cout << "Name : " << name << "\tAge : " << age << "\n";

	return;
}

● student.h
#ifndef HUMAN_H
#include "human.h"
#endif

#ifndef STUDENT_H
#define STUDENT_H

class Student : public Human
{
	protected:
		string major;

	public:
		Student();
		Student(string name, int age, string major);
		~Student();
		void setMajor(string v_major);
		string getMajor(void);
		void print(void);
};
#endif


● student.cpp
#include "student.h"

Student::Student()
{
	/* default constructor */
	cout << "Student default constructor" << "\n";
}

Student::Student(string name, int age, string major)
{
	setName(name);
	setAge(age);
	setMajor(major);

	cout << "Student second constructor" << "\n";
}

Student::~Student()
{
	/* Do nothing */
	cout << "Student default destructor" << "\n";
}

void Student::setMajor(string v_major)
{
	major = v_major;
}

string Student::getMajor(void)
{
	return major;
}

void Student::print(void)
{
	cout << "Name : " << name << "\tAge : " << age << "\tMajor : " << major << "\n";

	return;
}

● main.cpp
#include <iostream>
#include <string>
using namespace std;

#include "human.h"
#include "student.h"

int main()
{
	Human a("춘향", 18);
	Human b("몽룡", 21);
	Human c("사또", 50);

	a.print();
	b.print();
	c.print();

	Student d("명진", 21, "컴퓨터");
	Student e("미현", 22, "경영");
	Student f("용준", 24, "전자");

	d.print();
	e.print();
	f.print();

	return 0;
}
※ 뭐 질문이 없어서, 그냥 손에 잡히는데로 하렵니다.    그나저나 구글의 소스 플러그인은 정말 보기가 좋네요. 


Posted by 지그프리드 지그프리드

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절

  1. 2012.05.18 21:56
    댓글 주소 수정/삭제 댓글
    c++ 에스프레소 7장부터 11장 까지 exerclse 와 lab좀 해서주실수 있나요정말 어렵네요 군대 갔다 왓더니 모르겟네요 부탁드립니다.
  2. 2012.06.11 08:43 신고
    댓글 주소 수정/삭제 댓글
    C++ 에스프레소의 솔류션을 찾는 유입 키워드가 굉장히 많네요. 도와드릴 용의는 있습니다.
    단, 전체를 요청하기보다, 막히는 문제 한두 문제 정도? 그리고 막히는 부분을 물어봐주세요.
    좋아요 나 View on, 배너 클릭을 좀 해주시면 저도 의욕이 좀 더 나겠죠.
    • jjsj
      2014.05.24 15:06
      댓글 주소 수정/삭제
      C++에스프레소 6장 LAB문제 답좀 알수있을까요...ㅠ
      일단 답을 알고 보면서 공부하고 싶은데...답이없네요 ㅠㅠ


BLOG main image
일상, 프로그래밍, IT 그리고 직장생활, Dive, 여행 by 지그프리드

카테고리

Class List (402)
Studies (30)
Exercise & Quizz (10)
Term Project (0)
ECIM list (Help!) (10)
Issues & News (0)
Gossip about IT & Job (22)
Tools (2)
Think about the Justice (23)
Book Review (170)
조엘 온 소프트웨어(번역) (28)
Diary (87)
Vacations (9)
Clash of clans 클래시 오브.. (11)

글 보관함

달력

«   2019/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Total : 315,135
Today : 24 Yesterday : 27