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;
}