๐๋ค์ด๊ฐ๊ธฐ ์ ์ ์ ๋ฆฌ
- ๋ ํผ๋ฐ์ค ๋ณ์
: ๊ฐ๊ณผ ์ฃผ์๊ฐ ๋ชจ๋ ๊ฐ์ง๊ณ ์๋ค๋ผ๊ณ ์ฐ์ ์๊ฐํ๊ธฐ
- ๋์ ํ ๋น
: ๋ง ๊ทธ๋๋ก ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ ๋์ ํ ๋น
์๋ฅผ ๋ค์ด ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋์ ์ผ๋ก ํ ๋นํด์ค ์ ์๊ฒ ์ฅฌ?
- ๋ณต์ฌ์์ฑ์
์๋ฅผ ๋ค์ด Person p1=new Person();
Person p2;
p1=p2; ๊ฐ์ด ์ด๋ค ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํ๋ค? ๊ทธ๋ฌ๋ฉด ๋ณต์ฌ์์ฑ์๊ฐ ์์ฑ๋จ
์ฐ๋ฆฌ๋ ๋ชจ๋ฅด๋ ์ฌ์ด์ ๋ํดํธ ๋ณต์ฌ ์์ฑ์๊ฐ ์คํ๋๊ณ ์๋๊ฑฐ
๊ทผ๋ฐ ์ด ๋ํดํธ ๋ณต์ฌ์์ฑ์๋ ์์ ๋ณต์ฌ์ด๊ธฐ์ ๊ฐ๋ ๋ณต์ฌํ๊ณ ์ฃผ์๊ฐ ๊ณต๊ฐ์ ๋ฐ๋ก ์ฌ์ฉํ๋ ๊น์ ๋ณต์ฌ๋ฅผ ํด์ฃผ๊ธฐ ์ํด
๋ ํผ๋ฐ์ค ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๊น์ ๋ณต์ฌ ๋ณต์ฌ์์ฑ์๋ฅผ ์ปค์คํฐ๋ง์ด์งํ๋ ๊ณผ์ ์ด ํ์ํจ!
ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ์ ๋ฆฌ ๋ ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ์!
๊ฐ์ ์ํ ํธ์ถ๋ก ๊ฐ์ฒด ์ ๋ฌํ๊ธฐ
๋งค๊ฐ๋ณ์ ๊ฐ์ฒด ๊ณต๊ฐ์ด ์คํ์ ํ ๋น๋๋ค.
๋งค๊ฐ๋ณ์ ๊ฐ์ฒด๊ฐ ๊ทธ๋๋ก ๋ณต์ฌ๋๋ค -> ๋งค๊ฐ๋ณ์ ๊ฐ์ฒด์ ์์ฑ์๊ฐ ํธ์ถ๋์ง ์๋๋ค!
์ ์์ฑ์๊ฐ ํธ์ถ๋์ง ์์๊น?
=> ํธ์ถ๋๋ ์๊ฐ ์ค์ธ์ ๊ฐ์ฒด ์ํ๋ฅผ ๋งค๊ฐ๋ณ์ ๊ฐ์ฒด์ ๊ทธ๋๋ก ์ ๋ฌํ๊ธฐ ์ํจ!
#include <iostream>
using namespace std;
class Circle {
private:
int radius;
public:
Circle();
Circle(int r);
~Circle();
double getArea() { return 3.14*radius*radius; }
int getRadius() { return radius; }
void setRadius(int radius) { this->radius = radius
};
Circle::Circle() {
radius = 1;
cout << "์์ฑ์ ์คํ radius = " << radius << endl;
}
Circle::Circle(int radius) {
this->radius = radius;
cout << "์์ฑ์ ์คํ radius = " << radius << endl;
}
Circle::~Circle() {
cout << "์๋ฉธ์ ์คํ radius = " << radius << endl;
}
void increase(Circle c) {
int r = c.getRadius();
c.setRadius(r+1);
}
int main() {
Circle waffle(30);
increase(waffle);
cout << waffle.getRadius() << endl;
}
๋งค๊ฐ๋ณ์ c์ ์์ฑ์๋ ์คํ๋์ง ์๋๋ค! ๋จ ํจ์ ๋น ์ ธ๋๊ฐ๋ c์ ๋ํ ์๋ฉธ์๊ฐ ์คํ๋จ
waffle๊ณผ c๋ ์๋ก ๋ค๋ฅธ ๊ณต๊ฐ์ ์๋ค.
์ฃผ์์ ์ํ ํธ์ถ๋ก ๊ฐ์ฒด ์ ๋ฌํ๊ธฐ
๋งค๊ฐ๋ณ์๋ ๊ฐ์ฒด์ ๋ํ ํฌ์ธํฐ ๋ณ์๋ก ์ ์ธ
ํจ์ ํธ์ถ ์ ์์ฑ์ ์๋ฉธ์๊ฐ ์คํ๋์ง ์๋ ๊ตฌ์กฐ
int main(){
Circle waffle(30);
increase(&waffle);
}
void increase(Circle *c) {
int r = c->getRadius();
c.setRadius(r+1);
}
waffle์ ์ฃผ์๊ฐ c์ ์ ๋ฌ๋๋ค. ์์ ๊ฒฝ์ฐ์ ๋ค๋ฅด๊ฒ waffle๊ณผ c๊ฐ ๊ฐ์ ๊ณต๊ฐ์ ๊ณต์ ํ๋ค.
์ฐธ์กฐ๋?
์ฐธ์กฐ๋ ์ด๋ฏธ ์กด์ฌํ๋ ๊ฐ์ฒด๋ ๋ณ์์ ๋ํ ์ค๋ช ์ด๋ค.
์ด๋ฆ๋ง ์๊ธฐ๋ฉฐ ์๋ก์ด ๊ณต๊ฐ์ ํ ๋นํ์ง ์๋๋ค.
int n=2;
int &refn=n;
์๋ฌดํผ ์ง๊ธ ์ํฉ์์๋ ๊ฐ๊ณผ ์ฃผ์๊ฐ ๊ฐ์ง๋ค๊ณ ์๊ฐํด๋์.
n=4;
refn++;
์ด๋ผ๋ฉด n์ ๋ญ๊น? 5๊ฐ ๋ ๊ฒ์ด๋ค. refn๋ 5๊ฐ๋๋ค.
int* p=&refn;
*p=20;
์ด๋ผ๋ฉด ref์ ๋ญ๊น? 20์ด๋ค!! ๊ทธ๋ฌ๋ฉด n์ ๋ญ๊น? ๋์ด ์ฃผ์๊ฐ ๊ณต์ ํ๊ณ ์์ผ๋ 20์ด๋ค.
์ฐธ์กฐ์ ์ํ ํธ์ถ
ํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ฐธ์กฐํ์ ์ผ๋ก ์ ์ธํ๋ค.
์ฐธ์กฐ ๋งค๊ฐ๋ณ์ ์ด๋ฆ๋ง ์๊ธฐ๊ณ ๊ณต๊ฐ์ ์๊ธฐ์ง ์๋๋ค.
์ค์ธ์ ๋ณ์ ๊ณต๊ฐ์ ๊ณต์ ํ๋ค! (์ฐธ์กฐ์ ์ํ ํธ์ถ๋ ์ฃผ์์ ์ํ ํธ์ถ ์ฒ๋ผ swap์ด ๋ ๊ฒ )
์ฐธ์กฐ๋ฅผ ์ด๋ค๋ฉด ๋งค๊ฐ๋ณ์๊ฐ increase(Circle &c)
ํฌ์ธํฐ ์ด๋ค๋ฉด increase(Circle* c)
#include <iostream>
using namespace std;
class Circle {
int radius;
public:
Circle() { radius = 1; }
Circle(int radius) { this->radius = radius; }
void setRadius(int radius) { this->radius = radius; }
double getArea() { return 3.14*radius*radius; }
};
int main() {
Circle donut;
readRadius(donut);
cout << "donut์ ๋ฉด์ = " <<donut.getArea() << endl;
}
๊ทธ๋ฅ readRadius์ ๊ทธ๋ฅ donut๋ง ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ์ฐธ์กฐ๋ณ์๋ฅผ ์ผ๋ค๋ ๊ฒ์ ์ ์ ์์
void readRadius(Circle &c)
๊ฐ์ ๋ฆฌํดํ๋? ์ฐธ์กฐ๋ฅผ ๋ฆฌํดํ๋?
char c = 'a';
char get() { // char ๋ฆฌํด
return c; // ๋ณ์ c์ ๋ฌธ์(‘a’) ๋ฆฌํด
}
char a = get(); // a = 'a'๊ฐ ๋จ
get() = 'b'; // ์ปดํ์ผ ์ค๋ฅ
char get()์ด๋ฉด c ์์ ๋ฌธ์์ธ 'a'๋ฆฌํด์ ํ๋ค. 'a'='b'์ผ์ ์๊ธฐ์ ์ปดํ์ผ ์ค๋ฅ๊ฐ ๋ฌ๋ค.
char c = 'a';
char& find() { // char ํ์
์ ์ฐธ์กฐ ๋ฆฌํด
return c; // ๋ณ์ c์ ๋ํ ์ฐธ์กฐ ๋ฆฌํด
}
char a = find(); // a = 'a'๊ฐ ๋จ
char &ref = find(); // ref๋ c์ ๋ํ ์ฐธ์กฐ
ref = 'M'; // c= 'M'
find() = 'b'; // c = 'b'๊ฐ ๋จ
char& get()์ด๋ฉด charํ์ ์ ๊ณต๊ฐ์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ฆฌํดํ๋ค.
์ฆ, find()๊ฐ ๋ฆฌํดํ ๊ณต๊ฐ์ ref๊ฐ ๋ค์ด๊ฐ๊ธฐ์ ref='M'์ c='M'์ด ๋ ์ ์๋ ๊ฒ์ด๋ค.
๋ฟ๋ง ์๋๋ผ find()='b'๋ c='b'๊ฐ ๋ ์ ์๋ค.
์ฆ, ์ฐธ์กฐ๋ฆฌํด์ ๊ฐ์ ๋ฐํ์ด ์๋ ๊ณต๊ฐ์ ๋ฐํ์ด๋ค.
#include <iostream>
using namespace std;
char& find(char s[], int index) {
return s[index]; // ์ฐธ์กฐ ๋ฆฌํด
}
int main() {
char name[] = "Mike";
cout << name << endl;
find(name, 0) = 'S'; // name[0]='S'๋ก ๋ณ๊ฒฝ
cout << name << endl;
char& ref = find(name, 2);
ref = 't'; // name = "Site"
cout << name << endl;
}
์ฌ๊ธฐ์ find(name,0)์ ๋ณด๋ฉด name[0]='S'๊ฐ ๋๋ค!
๊น์๋ณต์ฌ์ ์์ ๋ณต์ฌ
โญ ํ์ค ์ ๋ฆฌ
์์๋ณต์ฌ๋ ๊ณต๊ฐ์ ์์ฑํ์ง ์๊ณ , ์ฃผ์๊ฐ์ ๋ณต์ฌํ๋ค. ๊ทธ๋ ๊ธฐ์ ์ฃผ์๊ฐ์ ๊ณต์ ํ๋ค.
๊น์ ๋ณต์ฌ๋ ๊ณต๊ฐ์ ๋ฐ๋ก ์์ฑํด์ ์ฃผ์๊ฐ๊ณผ ๊ฐ์ ๋ณต์ฌํ๋ค. ๊ทธ๋์ ์๋ก ๋ค๋ฅธ ๊ณต๊ฐ์ ์ฃผ์๊ฐ์ ๊ฐ์ง๋ค.
๐ ppt์์์ ์ฃผ์ ์ฃผ์
๋ณต์ฌ์์ฑ์
๊ฐ์ฒด๊ฐ ๋ณต์ฌ ์์ฑ๋ ๋ ํธ์ถ๋๋ ํน๋ณํ ์์ฑ์.
class Circle{
Circle(const Circle& c); //๋ณต์ฌ์์ฑ์ ์ ์ธ
}
Circle::Circle(const Circle& c); //๋ณต์ฌ ์์ฑ์ ๊ตฌํ
๐ ํน์ง
๋ณต์ฌ์์ฑ์๋ ํ ํด๋์ค์ ์ค์ง ํ๊ฐ๋ง ์ ์ธ๊ฐ๋ฅ
๋ณต์ฌ์์ฑ์๋ ๋ณดํต ์์ฑ์์ ํด๋์ค ๋ด์์ ์ค๋ณต ์ ์ธ ๊ฐ๋ฅํ๋ค!
ํด๋์ค์ ๋ํ ์ฐธ์กฐ ๋งค๊ฐ๋ณ์๋ฅผ ๊ฐ์ง๋ ๋ ํนํ ์์ฑ์.
#include <iostream>
using namespace std;
class Circle {
private:
int radius;
public:
Circle(const Circle& c); // ๋ณต์ฌ ์์ฑ์ ์ ์ธ
Circle() { radius = 1; }
Circle(int radius) { this->radius = radius; }
double getArea() { return 3.14*radius*radius; }
};
Circle::Circle(const Circle& c) { // ๋ณต์ฌ ์์ฑ์ ๊ตฌํ
this->radius = c.radius;
cout << "๋ณต์ฌ ์์ฑ์ ์คํ radius = " << radius << endl;
}
int main() {
Circle src(30); // src ๊ฐ์ฒด์ ๋ณดํต ์์ฑ์ ํธ์ถ
Circle dest(src); // dest ๊ฐ์ฒด์ ๋ณต์ฌ ์์ฑ์ ํธ์ถ
cout << "์๋ณธ์ ๋ฉด์ = " << src.getArea() << endl;
cout << "์ฌ๋ณธ์ ๋ฉด์ = " << dest.getArea() << endl;
}
Circle src(30)์ ํ๋ฉด Circle(int radius) ํธ์ถ๋จ
Circle dest(src) ํ๋ฉด Circle(const Circle& c) ํธ์ถ๋จ
๋ํดํธ ๋ณต์ฌ์์ฑ์
Circle::Circle(const Circle& c) {
this->radius = c.radius;
// ์๋ณธ ๊ฐ์ฒด c์ ๊ฐ ๋ฉค๋ฒ๋ฅผ ์ฌ๋ณธ(this)์ ๋ณต์ฌํ๋ค.
}
์ด๋ฐ ํ์์ด ๋ํดํธ ๋ณต์ฌ์์ฑ์์ด๋ค.
๋ณต์ฌ์์ฑ์๊ฐ ์ ์ธ๋์ง ์์ ํด๋์ค์ธ ๊ฒฝ์ฐ, ์ปดํ์ผ๋ฌ๊ฐ ์๋์ผ๋ก ๋ํดํธ ๋ณต์ฌ์์ฑ์๋ฅผ ์ฝ์ ํ๋ค.
์์๋ณต์ฌ์ ๋ฌธ์ ์
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
class Person { // Person ํด๋์ค ์ ์ธ
char* name;
int id;
public:
Person(int id, const char* name); // ์์ฑ์
~Person(); // ์๋ฉธ์
void changeName(const char *name);
void show() { cout << id << ',' << name << endl; }
};
Person::Person(int id, const char* name) { // ์์ฑ์
this->id = id;
int len = strlen(name); // name์ ๋ฌธ์ ๊ฐ์
this->name = new char [len+1]; // name ๋ฌธ์์ด ๊ณต๊ฐ ํ๋น
strcpy(this->name, name); // name์ ๋ฌธ์์ด ๋ณต์ฌ
}
Person::~Person() {// ์๋ฉธ์
if(name) // ๋ง์ผ name์ ๋์ ํ ๋น๋ ๋ฐฐ์ด์ด ์์ผ๋ฉด
delete [] name; // ๋์ ํ ๋น ๋ฉ๋ชจ๋ฆฌ ์๋ฉธ
}
void Person::changeName(const char* name) { // ์ด๋ฆ ๋ณ๊ฒฝ
if(strlen(name) > strlen(this->name))
return;
strcpy(this->name, name);
}
int main() {
Person father(1, "Kitae"); // (1) father ๊ฐ์ฒด ์์ฑ
Person daughter(father); // (2) daughter ๊ฐ์ฒด ๋ณต์ฌ ์์ฑ. ๋ณต์ฌ์์ฑ์ํธ์ถ
cout << "daughter ๊ฐ์ฒด ์์ฑ ์งํ ----" << endl;
father.show(); // (3) father ๊ฐ์ฒด ์ถ๋ ฅ
daughter.show(); // (3) daughter ๊ฐ์ฒด ์ถ๋ ฅ
daughter.changeName("Grace"); // (4) daughter์ ์ด๋ฆ์ "Grace"๋ก ๋ณ๊ฒฝ
cout << "daughter ์ด๋ฆ์ Grace๋ก ๋ณ๊ฒฝํ ํ ----" << endl;
father.show(); // (5) father ๊ฐ์ฒด ์ถ๋ ฅ
daughter.show(); // (5) daughter ๊ฐ์ฒด ์ถ๋ ฅ
return 0; // (6), (7) daughter, father ๊ฐ์ฒด ์๋ฉธ
}
Person father(1,"kitae")๋ฅผ ํ๋ฉด Person(int id,const char* name) ์์ฑ์๊ฐ ํธ์ถ๋๋ค.
Person daughter(father); ๋ฅผ ํ๋ฉด ๋ํดํธ ๋ณต์ฌ์์ฑ์๊ฐ ํธ์ถ๋๋๋ฐ
๋ํดํธ ๋ณต์ฌ์์ฑ์๋ฅผ ๋ณด๋ฉด
Person::Person(const Person& p) {
this->id = p.id;
this->name = p.name;
}
์๊ฒ ํธ์ถ๋๋ค.
๊ทผ๋ฐ ๋ฌธ์ ๋ daughter์ father๊ฐ ์์๋ณต์ฌ๊ฐ ๋๋ฉด์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์ ํ๊ฒ ๋๋ค!
daughter,father์์ผ๋ก ๊ฐ์ฒด๊ฐ ์๋ฉธ๋๋ค. ๊ทผ๋ฐ ๋ฌธ์ ์ ์ด ๋์ด ๊ฐ์ ์ฃผ์๊ฐ์ ๊ฐ๋ฆฌํค๋๊น
daughter๊ฐ ์๋ฉธ๋๊ณ ๋๋ฉด father๊ฐ ๊ฐ๋ฆฌํค๋ ์ฃผ์๊ฐ์ ๊ฐ๋ฆฌํค๊ณ ์์๋๋ฐ ๊ฐ๋ฆฌํค์ง ์์์ต๋๋ค?! ์ํฉ์ด ๋๋ฉด์
ํ๋ก๊ทธ๋จ์ด ๋น์ ์ ์ข ๋ฃ๋๋ค.
์๋ฉธ์์์ daugther ๊ฐ์ฒด์๋ฉธ๋๋ฉด์ ์ด๋ฏธ name์ด ๋ ์๊ฐ๋ฒ๋ ธ๋๋ฐ
father์์ ์ด๋ฏธ ๋ ์๊ฐ๋ฒ๋ฆฐ์ ๋ ๋ฆฌ๋ ค๋ ์๋ฌ๊ฐ ๋จ๋ ๊ฒ์ด๋ค..!
๊ทธ๋ผ ํด๊ฒฐ์ฑ ์ ๋ฌด์์ผ๊น? ๋ฐ๋ก ๊น์๋ณต์ฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
์ด๋ฆ์ ๋ํ ์๋ก์ด ๊ณต๊ฐ ๋ง๋ค๋ฉด ๋๋ค. this-> new char[len+1] ์ด๋ฐ๋ฐฉ์์ผ๋ก ์๋ก์ด ๋ฌธ์์ด ๊ณต๊ฐ์ ํ ๋นํ ์ ์๋ค.
๊ทธ๋ฆฌ๊ณ strcpy(this->name, name); ๋ฅผ ํ๋ฉด์ name์ ๋ฌธ์์ด์ ๋ณต์ฌํ ์ ์๋ค.
์ ๊ทผ๋ฐ, ์ง๊ธ๊น์ง Person ํด๋์ค๋ฅผ ๋ดค์ ๋ ๊ฐ์ฒด๋ฅผ ๊น์ ๋ณต์ฌ๋ฅผ ํ ์ ์๋ ๋ฉ์๋๊ฐ ์๋ค..!
๊น์ ๋ณต์ฌ๋ฅผ ํ๋ ์์ฑ์์ ๋งค๊ฐ๋ณ์๋ int id,const char* name์ด๋ค.
๊ทผ๋ฐ ์ฐ๋ฆฌ๊ฐ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์์์ผ ํ๋ ๊ฑด ๊ฐ์ฒด์ด๋ค..!!
๊ทธ๋์ ์ฌ๊ธฐ์ ๋ณต์ฌ์์ฑ์๋ฅผ ์ปค์คํฐ๋ง์ด์ง์ ํด์ผํ๋ค!!
๋ฐ๋ก ๋งค๊ฐ๋ณ์๋ก ์ฐธ์กฐ๋ณ์๋ฅผ ๋ฐ์์ค๋ ๊ฒ์ด๋ค!!
Person::Person(const Person& person) { // ๋ณต์ฌ ์์ฑ์
this->id = person.id; // id ๊ฐ ๋ณต์ฌ
int len = strlen(person.name);// name์ ๋ฌธ์ ๊ฐ์
this->name = new char [len+1]; // name์ ์ํ ๊ณต๊ฐ ํ๋น
strcpy(this->name, person.name); // name์ ๋ฌธ์์ด ๋ณต์ฌ
cout << "๋ณต์ฌ ์์ฑ์ ์คํ. ์๋ณธ ๊ฐ์ฒด์ ์ด๋ฆ " << this->name << endl;
}
father์ daughter๊ฐ ์๋ก ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์๊ธฐ์ daughter๊ฐ ๋จผ์ ์๋ฉธ์ ํธ์ถ๋์ด๋
father์๋ ์๋ฌด๋ฐ ์ํฅ์ด ๊ฐ์ง ์๋๋ค!!
๐ ๋ ์ฐพ์๋ณธ ๋ฐ๋ก๋
๊น์ ๋ณต์ฌ(Deep Copy)๋ '์ค์ ๊ฐ'์ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ณต์ฌํ๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ,
์์ ๋ณต์ฌ(Shallow Copy)๋ '์ฃผ์ ๊ฐ'์ ๋ณต์ฌํ๋ค๋ ์๋ฏธ์ ๋๋ค.
์์ ๋ณต์ฌ๋ ๋ํดํธ ๋ณต์ฌ ์์ฑ์์ธ ๋ฐ๋ฉด, ๊น์ ๋ณต์ฌ๋ ๋ณต์ฌ ์์ฑ์๋ฅผ ์ฌ์ ์ํจ์ผ๋ก์จ ์ํ๋ ๋ฉค๋ฒ ๋ณ์๋ง ๋ณต์ฌ๋ฅผ ํด์ฃผ๋ ํ์์ด๋ค. ๊ทธ๋์ ์์ ๋ณต์ฌ์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ ์ ์๋ค.
์์ ๋ณต์ฌ๋ ๋ํดํธ ๋ณต์ฌ ์์ฑ์๋ก ๋์ถฉ ๋ณต์ฌํ๋ ๊ฐ์ด๋ผ๋ฉด, ๊น์ ๋ณต์ฌ๋ ๋ณต์ฌ ์์ฑ์๋ฅผ ์ฌ์ ์ํด์ค์ผ๋ก์จ ๊ฐ์ฒด๊ฐ์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์ฐธ์กฐ๋ฅผ ๋ง์์ฃผ๊ธฐ์ ๊น์ ๋ณต์ฌ๋ผ๊ณ ํ๋ ๊ฒ ๊ฐ๋ค.
* ๋ณต์ฌ ์์ฑ์์ const๋ก ์ธ์๋ฅผ ๋ฐ์์ค๋๋ฐ, ๊ทธ ์ด์ ๋ ๊ธฐ์กด์ ๊ฐ์ฒด์ ๋ฉค๋ฒ ๋ณ์ ๊ฐ์ ๊ฑด๋๋ฆฌ์ง ์๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค.
๊ทธ๋์ ๋ณต์ฌ ์์ฑ์์ const๋ก ๋ฐ์์ค๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
https://musket-ade.tistory.com/30
'C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] ๋ช ํ C++ 4์ฅ ์ฐ์ด์ค๊ฑฐ ์ ๋ฆฌ (0) | 2022.10.14 |
---|---|
[C++] ๋ช ํ c++ 3์ฅ ์ฐ์ด์ค๊ฑฐ ์ ๋ฆฌ (0) | 2022.10.14 |
[C++] ์ํ๋๋น ์ ๋ฆฌ๋ค -๊ฐ์ฒด๋ฐฐ์ด๊ณผ ํฌ์ธํฐ (0) | 2022.09.19 |
[C++] #include <ํค๋ํ์ผ> ๊ณผ #include "ํค๋ํ์ผ"์ ์ฐจ์ด์ (0) | 2022.09.01 |
[C++] ๋์ ์ฐ์ฐ์ (0) | 2022.07.09 |
๋๊ธ