๐ฉ ์์ฑ์
๊ฐ์ฒด๊ฐ ์์ฑ๋๋ ์์ ์ ์๋์ผ๋ก ํธ์ถ๋๋ ๋ฉค๋ฒ ํจ์๋ก ํด๋์ค ์ด๋ฆ๊ณผ ๋์ผํ ๋ฉค๋ฒ ํจ์์ด๋ค.
๋, ํจ์ ํน์ ์ ๋ฆฌํด ํ์ ์ ์ง์ ํ๋ฉด ์๋๋ค.
class Circle {
Circle();
Circle(int radius);
};
Circle::Circle() {
radius = 10;
cout << "๋ฐ์ง๋ฆ" << radius << "์ ์์ฑ" << "\n";
}
Circle::Circle(int radius) {
radius = radius;
cout << "๋ฐ์ง๋ฆ" << radius << "์ ์์ฑ" << "\n";
}
์์ฑ์๊ฐ 2๊ฐ๋ก ์ค๋ฒ๋ก๋ฉ์ ํตํ ๋คํ์ฑ์ ๊ตฌํํ ์ฌ๋ก
๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ๊ฐ์ ์ง์ ํ๊ฑฐ๋ ์ํ๊ฑฐ๋์ ๋ฐ๋ผ ๋ฌ๋ฆฌ ๋์ํ ๊ฒ ๋ง๋ค ์ ์๋ค.
๊ฐ์ฒด, ์๋ฐํ๊ฒ ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ํด์ผํ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ด๋ถ์ ์ธ ์์ ๋ค์ด ์๋ค.
๋ฉค๋ฒ ๋ณ์ ๊ฐ์ ์ด๊ธฐํํ๊ฑฐ๋, ๊ฐ์ฒด ํฌ๊ธฐ์ ๋ง๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น, ํ์ผ์ ์ด๊ฑฐ๋ ๋คํธ์ํฌ๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฑ ์์ฑํ๋ ์์ ์ ํด์ผํ๋ ์ด๋ฌํ ์ด๊ธฐํ ์์ ๋ค์ ๋ด๋นํ๊ธฐ ์ํด์ ์กด์ฌํ๋ ๊ฒ์ด ์์ฑ์์ด๋ค.
์์ฑ์๋ ์ธ์คํด์ค๊ฐ ๋ง๋ค์ด์ง๋ ์์ ์ ์์ฑ๋๋ค. ์๋์ผ๋ก.
๊ทธ๋ฆฌ๊ณ ์์๋ก ํธ์ถํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค. ๋ํ, ์ค๋ฒ๋ก๋ฉ์ ํตํด ๋คํ์ฑ์ ๊ตฌํํ์ผ๋ฏ๋ก ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ ์ค๋ณต๋ ์์ฑ์ ์ค ํด๋นํ๋ ํ๋๋ง ํธ์ถ๋๋ค.
๋ง์ฝ, ์์ฑ์๋ฅผ ํ๋๋ ์์ฑํ์ง ์์๋ค๋ฉด, ์ปดํ์ผ๋ฌ์ ์ํด ๋งค๊ฐ๋ณ์๊ฐ ์๋ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ์๋์ผ๋ก ์์ฑ๋๋ค. ํ์ง๋ง, ๋ง์ฝ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์์ฑ์ ํ๋๋ง ์์ฑํ๊ณ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์์ฑํ์ง ์์๋ค๋ฉด ์ปดํ์ผ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค. ์ด๋ค ์์ฑ์๋ ์์ฑ์๊ฐ ์๊ธฐ๋ง ํ๋ฉด, ์ปดํ์ผ๋ฌ๊ฐ ๋์ผ๋ก ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ์์ฑํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ด ๊ฒฝ์ฐ๋ฅผ ์ฃผ์ํด์ผ ํ๋ค.
class Rectangle{
int width, length;
public:
Rectangle();
Rectangle(int x);
Rectangle(int w, int l);
int getArea();
}
์ ํด๋์ค์ ์์ฑ์๋ ์ด ์ธ๊ฐ์ง์ด๋ค. ๋จผ์ ๊ฐ๊ฐ์ ๊ฒฝ์ฐ๋ณ๋ก ๋ฉค๋ฒ ๋ณ์๋ฅผ ์ด๊ธฐํํ๋ฉด ์๋์ ๊ฐ๋ค.
Rectangle::Rrectangle(){
width = 10;
length = 10;
}
Rectangle::Rectangle(int x){
width = x;
length = x;
}
Rectangle::Rectangle(int w, int l){
width = w;
length = l;
}
๋, ์๋์ ๊ฐ์ด ์ด๊ธฐํํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค.
Rectangle::Rectangle() : width(10), length(10) {}
Rectangle::Rectangle(int x) : width(x), length(x) {}
Rectangle::Rectangle(int w, int l) : width(w), length(l) {}
์ด๋ ๊ฒ ํ ์ ์๋ ์ด์ ๋ C++์์ ๋ฉค๋ฒ ๋ณ์ ๋ํ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ด๋ค. int์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ ๊ฐ์ฒด์ด๋ฏ๋ก, intํด๋์ค์ ์ธ์คํด์ค width์ ์์ฑ์ ๋งค๊ฐ๋ณ์๋ก ๊ฐ์ ๋๊ฒจ์ฃผ์ด ์ด๊ธฐํ์ํค๋ ๊ฒ์ผ๋ก ์ดํดํ ์ ์๋ค.
๐ ์์ ์์ฑ์
ํ ์์ฑ์๊ฐ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ์ ์๋๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ
์ด๊ธฐํ ์ฝ๋๋ฅผ ์ค๋ณตํด์ ์์ฑํ์ง ์๊ณ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํฌ ์ ์๋ค.
์์ ์์ฑ์์ ํ๊ฒ ์์ฑ์๋ก ๋๋๋ค.
Rectangle::Rectangle() : Rectangle(10){} // ์์ ์์ฑ์
Rectangle::Rectangle(int x) : Rectangle(x,x){} // ํ๊ฒ ์์ฑ์์ด๋ฉด์, ์์ ์์ฑ์
Rectangle::Rectangle(int w, int l) : width(x), length(l) {} // ํ๊ฒ ์์ฑ์
๐ฉ ์๋ฉธ์
์์ฑ์์ ๋ฐ๋๋ก ์๋ฉธ์๋ ๊ฐ์ฒด๊ฐ ์๋ฉธ๋ ๋, ์๋์ผ๋ก ํธ์ถ๋๋ ํจ์๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์์๋ก ํธ์ถํ ์ ์์ผ๋ฉฐ, ํด๋์ค์ ๋์ผํ ์ด๋ฆ์ ๊ฐ๊ณ ๋ฆฌํดํ์ ์ ์ง์ ํ ์ ์๋ค. ๋ค๋ง, ์ฐจ์ด์ ์ ์๋ฉธ์๋ ๋ฐ๋์ ํ๋๋ง ์กด์ฌํด์ผ ํ๊ณ , ์์ ~์ด ๋ถ๋๋ค.
class Rectangle{
int width, length;
public:
Rectangle();
Rectangle(int x);
Rectangle(int w, int l);
~Rectangle();
int getArea();
};
Rectangle::~Rectangle(){}
๐ฉ ๋ชฉ์
์์ฑ์์ ๋ฐ๋. ๊ฐ์ฒด๊ฐ ์ฌ๋ผ์ง๋์์ ์ ์ธ์คํด์ค๊ฐ ํ ๋น ๋ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๊ณ , ํ์ผ ์ ์ฅ ๋ฐ ๋ซ๊ธฐ, ๋คํธ์ํฌ ๋ซ๊ธฐ ๋ฑ ์์์ ๋ํ ๋ง๋ฌด๋ฆฌ ์์ ์ ํ๋ค. ๋ง์ฝ ์๋ฉธ์๊ฐ ์๋ค๋ฉด, ๊ฐ์ฒด๊ฐ ๋ง๋ค์ด์ง ๋๋ง๋ค ๋ฉ๋ชจ๋ฆฌ ๋ฑ์ ์์์ด ์ถ๊ฐ์ ์ผ๋ก ์ฌ์ฉ๋๊ฒ ๋ ๊ฒ์ด๊ณ , ์ด๊ฒ์ด ๋ฐ๋ณต๋๋ฉด ์ธ์ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ค๋ฒํ๋ก๋ก ์ธํด ํ๋ํ๋ฉด์ ๋ณผ ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ค์ํ ์ญํ ์ ๋ด๋นํ๋ค.
๐ฉ ํธ์ถ
ํด๋น ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๋ฒ์๊ฐ ๋๋๋ ์๊ฐ ์ฆ, ํจ์ ๋ด๋ถ์ ์ง์ญ ๊ฐ์ฒด๋ return๋๋ ์๊ฐ ์์ฑ์์ ์ญ์์ผ๋ก ํธ์ถ๋๋ค. ์ง์ญ ๊ฐ์ฒด๋ฟ ์๋๋ผ ์ ์ญ ๊ฐ์ฒด๋ ์์ ์ ์๋๋ฐ, ์ ์ญ ๊ฐ์ฒด์ ๊ฒฝ์ฐ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋ ๋ ํธ์ถ๋๋ค. ํ์ง๋ง, new ํค์๋๋ฅผ ์ด์ฉํด ๋์ ์ผ๋ก ์์ฑ๋ ๊ฐ์ฒด๋ ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋๋ผ๋ ๋ฉ๋ชจ๋ฆฌ์ ๋จ์์์ผ๋ฏ๋ก ๋ฐ๋์ delete ํค์๋๋ก ์๋ฉธ์์ผ์ผ ํ๋ค.
๐ฉ ๊ธฐ๋ณธ ์๋ฉธ์
๋ง์ง๋ง์ผ๋ก ์๋ฉธ์๋ฅผ ์ ์ธํ์ง ์์ ๊ฒฝ์ฐ์๋ ์์ฑ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ธฐ๋ณธ ์๋ฉธ์๋ฅผ ๋ง๋ค์ด์ค๋ค. ๋ฐ๋ผ์, new ํค์๋๋ก ๋ง๋ ๋์ ์์ฑ ๊ฐ์ฒด๋ฅผ delete๋ก ์๋ฉธ์ํค๋ ๊ฒ๋ง ์ ๊ฒฝ์ฐ๋ฉด ๋๋ค.
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > ๐ C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] ๋ณต์ฌ ์์ฑ์ | ๊น์ ๋ณต์ฌ์ ์์ ๋ณต์ฌ (0) | 2024.04.19 |
---|---|
[C++] ํด๋์ค์ ๋ฐฐ์ด, this ํฌ์ธํฐ (0) | 2024.04.18 |
[C++] ์ ๋ณด ์๋ | ์บก์ํ (0) | 2024.04.17 |
[C++] ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2024.04.17 |
[C++] ๊ตฌ์กฐ์ฒด(Struct) | ํด๋์ค์ ๊ฐ์ฒด (0) | 2024.04.17 |