ํฐ์คํ ๋ฆฌ ๋ทฐ
• ๊ฐ์์ฑ ์ง์์ด : Java์ ์ ๊ทผ ์ ํ์์ ๊ฐ์ ์ญํ
• ํด๋์ค ์ ์ธ
#ifndef COUNTER_H_INCLUDED
#define COUNTER_H_INCLUDED
...
#endif COUNTER_H_INCLUDED
ํค๋ ํ์ผ์ ์ฌ๋ฌ ๋ฒ ์ค๋ณต์ผ๋ก ๋ถ๋ฅด๋ ์ผ์ ๋ง๊ธฐ ์ํด
์์ ๊ฐ์ ์ ํ์ฒ๋ฆฌ๊ธฐ ์ง์์ด๋ฅผ ์ฌ์ฉํ๋ค. (๊ต์ฌ ๊ธฐ์ )
๊ทธ๋ฌ๋, #pragma once๋ผ๋ ์ง์์ด๋ ๋์ผํ ์ญํ ์ ํ๋ค.
• ํด๋์ค(Class)์ ๋ํดํธ๋ private / ๊ตฌ์กฐ์ฒด(Struct)์ ๋ํดํธ๋ public
• ๊ฐ์ฒด ์ ์ ํ์
ํด๋์ค์ ๊ฐ์ฒด (์ด๋ ํ ์๋ฃํ์ ๋ณ์๋ฅผ ์ ์ธํ๋ฏ ๊ฐ์ฒด๋ฅผ ์์ฑ)
• ๊ฐ์ฒด ์ฌ์ฉ์ ๋ฉค๋ฒ์ ํ ์ฐ์ฐ์ (.)๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ธฐ
cin >> objName.dataMember; // ๊ฐ์ฒด ๋ด ๋ฐ์ดํฐ ๋ฉค๋ฒ์ ์ ๊ทผ
objName.memFunc(...); // ๊ฐ์ฒด ๋ด ๋ฉค๋ฒ ํจ์์ ์ ๊ทผ
โซ ์์ ๊ฐ์ด ๊ฐ์ฒด์ ๋ฉค๋ฒํจ์ ์์์ ๊ทธ ๊ฐ์ฒด์ ์ํ ๋ฉค๋ฒ๋ฅผ
์ฌ์ฉํ ๋๋ "๋ฉค๋ฒ ์ด๋ฆ"๋ง์ผ๋ก ์ก์ธ์ค, ์ฆ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค
• ๊ฐ์ฒด ์ฌ์ฉ ํ์
๋ฉค๋ฒ ํจ์์์๋ ๊ฐ์ฒด ์ด๋ฆ์ ๋ฐ๋ก ์ฐ๋ฉด ๋๊ณ ,
๋ฉค๋ฒ ํจ์๋ฅผ ๋ฒ์ด๋ ์ธ๋ถ์์๋ "๊ฐ์ฒด ์ด๋ฆ.๋ฉค๋ฒ ์ด๋ฆ"
• Counter ๊ฐ์ฒด์ ์ ์ ๋ฐ ์ฌ์ฉ - CntMain.cpp
โซ private ๋ฐ์ดํฐ ๋ฉค๋ฒ์ธ value์ ์ธ๋ถ์์ ์ง์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ Error
โผ
โซ Counter ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์์ฑํ ํ,
value๋ผ๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ค ๊ฐ์ ๊ฐ์ง๊ณ ์๋์ง ๋ชจ๋ฆ (์ด๊ธฐํ ์ ํ์)
๊ทธ๋ฌ๋ฏ๋ก reset() ํจ์๋ฅผ ํตํด value์ ๊ฐ์ 0์ผ๋ก ๋จผ์ ์ด๊ธฐํ
โซ ๊ณต๊ฐ๋ ๋ฉค๋ฒ(๋ฉค๋ฒ ํจ์ ๋ฑ)๋ฅผ ํ์ฉํ์ฌ ๊ฐ์ฒด์ ๋์์ ์ง์ํ๊ณ ๊ฒฐ๊ณผ ์ป์ด๋ด๋ ํ์
• const ๋ฉค๋ฒํจ์
// ๋ฐ์ดํฐ ๋ฉค๋ฒ์ ๊ฐ์ด ์์ ๋์ง ์๋ ๋ฉค๋ฒ ํจ์ (const๋ ์์์ ์๋ฏธ)
โซ c.getvalue()๋ const๊ฐ ์ง์ ๋ ์์ ๋ฉค๋ฒํจ์์ด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ์ง๋ง, c.count()๋ ์ค๋ฅ!
โซ ๋ํ ๊ฐ์ด ๋ณํ๋ ํจ์์ const ํค์๋๋ฅผ ๋ถ์ด๋ฉด ์ค๋ฅ!
โซ f ํจ์ ์์์ Counter ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ์ผ๋ก ๋ฐ๋ ๊ฒฝ์ฐ๋
ใ์ค๋งค๊ฐ๋ณ์์ ๊ฐ ๋ณํ๊ฐ ์ ์ฉ๋๋ค ํ๋๋ผ๋ ์ค๋ฅ๊ฐ ๋์ง ์๋๋ค. (c.count())
ใ(๊ฐ์ ์ฝ์ด๋ค์ผ ๋ ๊ฐ์ ๋ณํ์ํค๋ ๊ฒ๋ ๊ด๊ณ ์์ c.getValue()
โซ ํ์ง๋ง ์๋ g ํจ์๋ ๋งค๊ฐ๋ณ์์ const๋ฅผ ์ง์ ํด ๋์์์๋ ๋ถ๊ตฌํ๊ณ
ใ๊ธฐ์ ๋ c.getValue() ๋ฉค๋ฒ ํจ์๊ฐ ๊ฐ์ ๋ณํ์ํจ๋ค ์ฌ๊ธฐ๊ธฐ ๋๋ฌธ์ ์ค๋ฅ ๋ฐ์!
โซ ๋ฐ๋์ ๋ฐ์ดํฐ ๋ฉค๋ฒ์ ๊ฐ์ด ๋ฐ๋์ง ์๋ ๊ฒฝ์ฐ์๋ const๋ฅผ ์ง์ ํด์ฃผ์ด์ผ ํ๋ค.
• ์์ค ํ์ผ์ ๊ตฌ์ฑ
// Class๋ฅผ ๋ง๋ค ๋๋ ํด๋น ํด๋์ค๋ฅผ ๋ฃ์ ํค๋ํ์ผ(.h)์ ๋ง๋ ๋ค
โซ ํค๋ ํ์ผ์์๋ ํด๋์ค ์ ์ธ๋ง ํ ํ, cpp ํ์ผ์์ ํด๋น ํด๋์ค๋ฅผ ์ ์ํด ์ค๋ค.
ใ์๋ง ClassA.h ํ์ผ ์์๋ void f(); ๊ฐ ์ ์ธ๋์ด ์์ ๊ฒ์
โซ ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ์์ค ํ์ผ์์ #include ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ํด๋์ค๊ฐ ์ ์ธ๋ ํค๋ ํ์ผ๋ง ๋ถ๋ฅด๋ฉด ๋จ
'๐ซ๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] ํด๋์ค์ ๊ฐ์ฒด(1)_์๋ฉธ์ (1) | 2023.10.18 |
---|---|
[C++] ํด๋์ค์ ๊ฐ์ฒด(1)_์์ฑ์ (0) | 2023.10.18 |
[C++] 230830 (C++ ์ธ์ด์ ๊ธฐ์ด_2) (0) | 2023.09.05 |
[์ปดํจํฐ ๊ณผํ ๊ฐ๋ก ] 230903 (์๋ฃ๊ตฌ์กฐ_1) (1) | 2023.09.03 |
[์ปดํจํฐ ๊ณผํ ๊ฐ๋ก ] 230903 (์ปดํจํฐ์ ๋ฐ์ดํฐ_2) (0) | 2023.09.03 |