Çʵå Å×½ºÆ®
1. ÀÌÁ¦ ¿©·¯ºÐ ½º½º·ÎÀÇ ÈûÀ¸·Î »õ Ŭ·¡½º¸¦ Çϳª ¸¸µé¾îº¸ÀÚ. ¿©·¯ºÐÀÌ ¸¸µé¾î º¼ Ŭ·¡½º´Â Color Ŭ·¡½º´Ù. »ö»óÀÇ Á¤º¸¸¦ º¸°üÇϰí RGB ¿ä¼Ò¸¦ °³º°ÀûÀ¸·Î º¯°æÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.
¿©·¯ºÐ¿¡°Ô 2°³ÀÇ ÆÄÀÏÀÌ ÁÖ¾îÁø´Ù. Çϳª´Â Color Ŭ·¡½ºÀÇ Á¤ÀǸ¦ Æ÷ÇÔÇϰí ÀÖ´Â Color.h ÆÄÀÏÀ̰í, ´Ù¸¥ Çϳª´Â Color Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ´Â Example.cpp ÆÄÀÏÀÌ´Ù. ÀÌ µÎ ÆÄÀÏÀ» ÂüÁ¶Çؼ Color.cpp ÆÄÀÏÀ» ¿Ï¼ºÇÏ´Â °ÍÀÌ ¹Ù·Î ¿©·¯ºÐÀÇ ¸òÀÌ´Ù. (Âü°í: ÇÊÀÚ°¡ ±¸ÇöÇÑ Color.cpp°¡ ¼Ò½º Äڵ忡 Æ÷ÇԵǾî ÀÖ´Ù - 21ÀåÀÇ Exer1 Æú´õ)
Color.h
1.
#ifndef
COLOR_H
2.
#define
COLOR_H
3.
4.
// »ý»óÀÇ Á¤º¸¸¦ º¸°üÇÏ´Â
5.
class
Color
6.
{
7.
public:
8.
//
°¢ RGB ¿ä¼Ò¸¦ º¸°üÇϴµ¥ »ç¿ëÇÒ Å¸ÀÔ
9.
//
(ÇöÀç·Î¼´Â 0~255ÀÇ ¹üÀ§¸¦ °®´Â´Ù)
10.
typedef
unsigned char element_t;
11.
12.
//
32ºñÆ® »ö»óÀÇ Å¸ÀÔ
13.
typedef
unsigned long color32_t;
14.
15.
//
óÀ½ »ý¼º½Ã °®°ÔµÇ´Â ±âº»»ö(ÇöÀç Èò»ö)
16.
enum
{defR = 255, defG = 255, defB = 255};
17.
18.
public:
19.
//
»ý¼ºÀÚ
20.
Color();
21.
Color(element_t
R, element_t G, element_t B);
22.
23.
//
Á¢±ÙÀÚ
24.
void
SetR(element_t val);
25.
void
SetG(element_t val);
26.
void
SetB(element_t val);
27.
element_t
GetR() const;
28.
element_t
GetG() const;
29.
element_t
GetB() const;
30.
31.
//
RGBÀÇ °ªÀ» 32ºñÆ® Á¤¼ö·Î ¸¸µé¾î¼ ¹Ýȯ/ÁöÁ¤
32.
//
(32ºñÆ® Áß¿¡¼ 24ºñÆ®¸¸ »ç¿ëÇÑ´Ù.
33.
//
Áï RGB °¢ ¿ä¼Òº°·Î 8ºñÆ®¾¿ Â÷Áö)
34.
void
SetColor32(color32_t val);
35.
color32_t
GetColor32() const;
36.
37.
//
Àüü ¹à±â¸¦ º¯È½ÃŲ´Ù.
38.
void
AdjustBright(int delta);
39.
40.
//
°ªÀ» Ãâ·ÂÇÑ´Ù.
41.
//
(endLine == trueÀÌ¸é ¿£Å͵µ Âï¾îÁØ´Ù.)
42.
void
Print(bool endLine = true) const;
43.
44.
protected:
45.
//
¹üÀ§¸¦ ¹þ¾î³ °ªÀ» 0~255 ¾ÈÀÇ ¹üÀ§·Î ¸¸µé¾îÁØ´Ù.
46.
//
(¼Ò½º ÄÚµåÀÇ Áߺ¹À» ¸·±â À§Çؼ »ç¿ëÇÒ ¼ö ÀÖ´Ù)
47.
int
PutInRange(int val);
48.
49.
protected:
50.
//
»ö»óÀº RGB·Î º¸°üµÈ´Ù.
51.
unsigned
char R;
52.
unsigned
char G;
53.
unsigned
char B;
54.
55.
public:
56.
//
ÀÚÁÖ ¾²ÀÌ´Â »ö»óÀ» Á¤Àû ¸â¹ö·Î ¸¸µé¾îµÐ´Ù.
57.
static
const Color Black;
58.
static
const Color White;
59.
static
const Color Green;
60.
static
const Color Blue;
61.
static
const Color Red;
62.
static
const Color Yellow;
63.
static
const Color Violet;
64.
static
const Color Gray;
65.
};
66.
#endif
Example.cpp
67.
#include
"Color.h"
68.
#include
<iostream>
69.
using
namespace std;
70.
71.
int
main()
72.
{
73.
//-------------------------------
74.
//
Color Ŭ·¡½ºÀÇ ±âº» ±â´É »ç¿ë
75.
//-------------------------------
76.
77.
//
µðÆúÆ® »ý¼ºÀÚ¸¦ »ç¿ëÇØ¼ »ý¼ºÇÑ´Ù.
78.
Color
c1;
79.
c1.Print(); //
³»¿ë È®ÀÎ
80.
81.
//
ÀÎÀÚ°¡ ÀÖ´Â »ý¼ºÀÚ¸¦ »ç¿ëÇØ¼ »ý¼ºÇÑ´Ù.
82.
Color
c2( 100, 100, 100);
83.
c2.Print();
// ³»¿ë È®ÀÎ
84.
85.
//
c2ÀÇ R ¿ä¼Ò¸¦ º¯°æÇÑ´Ù.
86.
c2.SetR(255);
87.
c2.Print();
// ³»¿ë È®ÀÎ
88.
89.
//
c2ÀÇ R ¿ä¼Ò¸¦ È®ÀÎÇÑ´Ù.
90.
cout
<< "c2.R = " << (int)c2.GetR() << "\n";
91.
92.
//
c2ÀÇ Àüü ¹à±â¸¦ 50¸¸Å Áõ°¡½ÃŲ´Ù.
93.
c2.AdjustBright(50);
94.
c2.Print();
// ³»¿ë È®ÀÎ
95.
96.
//
c2ÀÇ »ö»óÀ» 32ºñÆ® °ªÀ¸·Î Ãâ·ÂÇÑ´Ù.
97.
Color::color32_t
color = c2.GetColor32();
98.
cout
<< "c2 = " << color << "\n";
99.
100.
//
c1ÀÇ »ö»óÀ» 32ºñÆ® °ªÀ» »ç¿ëÇØ¼ º¯°æÇÑ´Ù.
101.
c1.SetColor32(
color);
102.
c1.Print();
// ³»¿ë È®ÀÎ
103.
104.
//-------------------------------
105.
//
Á¤Àû ¸â¹öÀÇ »ç¿ë
106.
//-------------------------------
107.
1
108.
//
»¡°£»ö °´Ã¼ÀÇ °ª È®ÀÎ
109.
Color::Red.Print();
110.
111.
//
°´Ã¼¸¦ »¡°£»öÀ¸·Î ÃʱâÈÇÑ´Ù.
112.
Color
c3 = Color::Red;
113.
c3.Print(); //
³»¿ë È®ÀÎ
114.
115.
return
0;
116.
}
[±×¸² 21-54] ½ÇÇà °á°ú
Á¤´ä->
¼Ò½ºÆú´õ¸¦ ÂüÁ¶(21ÀåÀÇ Exer1 Æú´õ)