Studies/C++

07 클래스(1)

쿠뱃봉 2022. 1. 25. 19:18

1.램프 클래스

(1)Lamp.h

#pragma once

class Lamp {
private:
	bool m_isOn;
	int m_illuminance;
public:
	void init();
	void powerOnOff();
	void changeLight();
	void showStatus();

};

 

(2)Lamp.cpp

#include "Lamp.h"
#include<iostream>
using namespace std;
void Lamp::init() {
	m_isOn = false;
	m_illuminance = 1;

}
void Lamp::powerOnOff() {
	m_isOn = !m_isOn;
}

void Lamp::changeLight() {
	if (m_isOn) {
		if (m_illuminance < 3)
			m_illuminance++;
		else
			m_illuminance = 1;
	}
}

void Lamp::showStatus() {
	if (m_isOn) {
		cout << "밝기: " << m_illuminance;
	}
	else {
		cout << "전원 꺼져 있음" << endl;
	}
}

 

2.사용자 클래스

(1)User.h

#pragma once
#include<string>
#include "Lamp.h"
using namespace std;
class User {
private:
	string m_name;
public:
	void init();
	void turnOnOff(Lamp& lamp);
	void changeLight(Lamp& lamp);
};

(2)User.cpp

#include "User.h"
void User::init() {
	m_name = "noName";

}
void User::turnOnOff(Lamp& lamp) {
	lamp.powerOnOff();
}

void User::changeLight(Lamp& lamp) {
	lamp.changeLight();
}

3. main 함수

소스.cpp

#include"Lamp.h"
#include<iostream>
#include"User.h"
using namespace std;

int main() {
	Lamp lamp1;
	lamp1.init();
	Lamp* p_lamp = &lamp1;
	Lamp* p_lamp2 = new Lamp();
	p_lamp2->init();
	p_lamp2->powerOnOff();
	p_lamp2->changeLight();
	delete p_lamp2;

	Lamp lamparr[4];
	lamparr[0].init();

	//lamp1.init();

	//Lamp lamp2;
	//lamp2.init();

	//Lamp lamp3;
	//lamp3.init();

	//User user1;
	//user1.init();
	//user1.turnOnOff(lamp2);
	//user1.turnOnOff(lamp3);
	//user1.changeLight(lamp2);

	return 0;
}

 

4. 티비 클래스와 사용자 클래스

(티비 클래스만 포스팅)

(1)Tv.h

#pragma once

class Tv {
private:
	bool m_isOn;
	int m_volume;
	int m_channel;
public:
	void init();
	void setVolume(int volume);
	void setChannel(int channel);
	int getVolume();
	int getChannel();
	void showTV();
	void powerOnOff();


};

 

(2)Tv.cpp

#include "Tv.h"
#include <iostream>
using namespace std;
void Tv::init() {
	m_isOn=false;
	m_volume=0;
	m_channel=100;
}

void Tv::setVolume(int volume) {
	m_volume = volume;
}

void Tv::setChannel(int channel) {
	m_channel = channel;
}

int Tv::getVolume() {
	return m_volume;
}

int Tv::getChannel() {
	return m_channel;
}

void Tv::showTV() {
	cout << "볼륨은 " << m_volume << "이며 \n채널은 " << m_channel << "번입니다";
}

void Tv::powerOnOff() {
	m_isOn = !m_isOn;
}