Çʵå Å×½ºÆ®

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 Æú´õ)