U E D R , A S I H C RSS

CPP Study_2005_1/Canvas

1. CPPStudy_2005_1/Canvas

  • λ§ˆμ§€λ§‰ μ‹€μŠ΅μ΄ λ˜κ² κ΅°μš”.

1.1. 문제

  • μ—¬κΈ°μ„œ λ„ν˜•μ΄ κ·Έλ €μ§„λ‹€ 함은 λ‹¨μˆœνžˆ λ„ν˜• 이름을 좜λ ₯ν•˜λŠ” 것이닀.
  • μ‚Όκ°ν˜•, μ‚¬κ°ν˜•, 원, 그리고 μ΄κ²ƒμ˜ μ‘°ν•©μœΌλ‘œ 이루어진 λ„ν˜•(또 λ‹€λ₯Έ μ‘°ν•©μœΌλ‘œ 이루어진 λ„ν˜•λ„ 포함 κ°€λŠ₯) 이 μžˆλ‹€. 이 λ„ν˜•λ“€μ„ Pallete 에 λ„£κ³  Draw ν•˜λ©΄ Pallete μ•ˆμ— μžˆλŠ” λͺ¨λ“  λ„ν˜•μ΄ κ·Έλ €μ§„λ‹€.

1.2. Class

  • * Draw κ΅¬ν˜„μ€ λ‹¨μˆœνžˆ ν˜„μž¬ λ„ν˜•μ΄λ¦„μ„ 좜λ ₯ν•˜λ©΄ λœλ‹€. λ„ν˜• 쑰합은 쑰합을 μ΄λ£¨λŠ” λͺ¨λ“  λ„ν˜• 이름을 좜λ ₯ν•œλ‹€.

1.2.1. Shape

  • 슈퍼 클래슀
  • μ•„λž˜ 4κ°€μ§€λ₯Ό μ„œλΈŒ 클래슀둜 κ°€μ§„λ‹€.
  • Draw, Add, Remove ν•¨μˆ˜λ₯Ό virtual ν•¨μˆ˜λ‘œ κ°€μ§„λ‹€.

1.2.1.1. Triangle

  • μ‚Όκ°ν˜•
  • Draw κ΅¬ν˜„

1.2.1.2. Rectangle

  • μ‚¬κ°ν˜•
  • Draw κ΅¬ν˜„

1.2.1.3. Circle

  • 원
  • Draw κ΅¬ν˜„

1.2.1.4. CompositeShape

  • list μ‚¬μš©
  • λ„ν˜• μ‘°ν•©
  • Draw κ΅¬ν˜„
  • Add, Remove 도 κ΅¬ν˜„

1.2.2. Palette

  • map μ‚¬μš©
  • 기본적으둜 Triangle, Square λ₯Ό κ°€μ§€κ³  μžˆλ‹€.
  • registerNewShape - μƒˆλ‘œμš΄ λ„ν˜•μ„ λ“±λ‘ν•œλ‹€.
  • Draw - λ“±λ‘λœ λͺ¨λ“  λ„ν˜•μ„ κ·Έλ¦°λ‹€.

1.2.3. 클래슀 μ‚¬μš© 예

~cpp
 Triangle aTriangle;
 Rectangle aRectangle;
 ComposedShape aComposedShape2;
 
 aComposedShape2.Add(&aTriangle);
 aComposedShape2.Add(&aRectangle);
 
 Circle aCircle;
 Rectangle aRectangle2;
 ComposedShape aComposedShape;
 
 aComposedShape.Add(&aComposedShape2);
 aComposedShape.Add(&aCircle);
 aComposedShape.Add(&aRectangle2);
           
         Pallete aPallete;
         aPallete.registerNewShape(aComposedShape);
         aPallete.Draw();
 
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:41
Processing time 0.0119 sec