일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- regression
- LG Aimers
- 회귀
- AI
- 티스토리챌린지
- 해커톤
- supervised learning
- LLM
- PCA
- GPT-4
- ChatGPT
- 딥러닝
- 지도학습
- Classification
- LG
- gpt
- 오블완
- LG Aimers 4th
- Machine Learning
- OpenAI
- deep learning
- 머신러닝
- 분류
- Today
- Total
목록Programming Lang (84)
SYDev
복사 생성자(Copy Constructor) 우리는 지금까지 다음 방식으로 변수와 참조자를 선언 및 초기화했다. int num = 20; int &ref = num; 하지만 C++에서는 다음과 방식으로도 선언 및 초기화가 가능하다. int num(20); int &ref(num); C++은 위와 같이 두 가지 초기화 방식을 동시에 지원하고 있다. 이어서 객체의 생성으로 넘어가보자. 아래에 간단한 클래스 하나가 있다. class SoSimple { private: int num1; int num2; public: SoSimple(int n1, int n2) : num1(n1), num2(n2) { } void ShowSimpleData() { cout
객체배열 객체 기반의 배열은 다음 형태로 선언한다.(SoSimple은 클래스의 이름) SoSimple arr[10]; 이를 동적으로 할당하는 경우에는 다음의 형태가 된다. SoSimple * ptrArr = new SoSimple[10]; 이렇게 배열을 선언하면, 열 개의 SoSimple 클래스의 객체가 모여서 배열을 구성하는 형태가 된다. 이렇게 객체 기반 배열을 선언할 때도 생성자는 호출이 되는데, 이 경우에는 생성자에 직접 인자를 전달하지 못한다는 문제점이 생긴다. 그렇기 때문에 위 형태의 배열을 선언하기 위해서는 다음과 같은 형태의 생성자가 선언되어 있어야 한다. SoSimple() { . . . . } 이후에 각각의 요소를 원하는 값으로 초기화시키기 위해서는 각각의 객체에 별도로 초기화의 과정을..
문제 앞서 풀었던 문제 04-2의 모든 클래스에 생성자를 정의하라. 문제풀이 #include using namespace std; class Point { private: int xpos, ypos; public: Point(int x, int y) : xpos(x), ypos(y) { } void ShowPointInfo() const { cout
멤버 이니셜라이저를 이용한 변수 및 const 상수(변수) 초기화 '멤버 이니셜라이저'는 객체가 아닌 멤버의 초기화에도 사용할 수 있다. 이와 관련된 다음 코드를 살펴보자. class SoSimple { pirvate: int num1; int num2; public: SoSimple(int n1, int n2) : num1(n1) // 이니셜라이저(num1의 값을 n1로 초기화) { num2 = n2; } . . . . . } 다음 이니셜라이저는 num1의 값을 n1로 초기화하라는 의미이며 선언과 동시에 초기화되는 것과 같은 유형의 바이너리 코드를 구성하여 다음 문장과 비유할 수 있다. int num1 = n1; // 이니셜라이저 반면, 생성자의 몸체에 있는 초기화 문장은 다음과 같이 선언과 초기화가 ..
생성자(Constructor) 지금까지는 정보은닉을 위해서 객체 생성을 하기 전에 Init이라는 함수를 정의하고 호출했다. 그러나 매번 이같은 과정을 반복하기 불편하기 때문에 우리는 생성자(Constructor)라는 개념을 이용할 것이다. '생성자'를 통해서 우리는 객체의 생성과 동시에 초기화가 가능해진다. 다음은 생성자의 특징을 알아보기 위한 간단한 클래스이다. class SimpleClass { private: int num; public: SimpleClass(int n) //(생성자(constructor)) { num = n; } int GetNum() const { return num; } }; 위 클래스에서 SimpleClass라는 함수가 생성자(Constructor)이며 다음과 같은 특징을 ..
문제 Chapter 03에서 제시한 과일장수 시뮬레이션 예제 FruitSaleSim1.cpp에서 정의한 두 클래스의 멤버변수는 private으로 선언이 되어있다. 그러나 다음 조건을 유지할 수 있는 장치는 아무것도 되어있지 않다. 사과의 구매를 목적으로 0보다 작은 수를 전달할 수 없다. 위의 제약사항을 항상 만족시킬 수 있도록 예제를 변경하고, 예제의 안정성을 높일 수 있도록 일부 함수를 const로 선언해보자. 문제풀이 파일명 : FruitSeller.h #ifndef __FRUITSELLER_H_ #define __FRUITSELLER_H_ class FruSel { int APPLE_PRICE; int numOfApples; int myMoney; public: void InitMembers(in..
문제 다음의 Point 클래스를 기반으로 하여(활용하여) 원을 의미하는 Circle 클래스를 정의하자. class Point { private: int xpos, ypos; public: void Init(int x, int y) { xpos = x; ypos = y; } void ShowPointInfo() const { cout
캡슐화의 이해 지난 글에서 좋은 클래스를 만들기 위한 조건으로 '정보은닉'과 '캡슐화'에 대해서 언급했을 것이다. 정보은닉에 대해서는 설명했으니 이번에는 캡슐화에 대해서 공부해보자.캡슐화는 간단하게 말해서 하나의 목적 하에 둘 이상의 기능을 모아서 그 목적을 달성하게 하는 것이다. 다음 예제는 캡슐화가 이루어지지 못한 사례이다. #include using namespace std; class SinivelCap //콧물 처치용 캡슐 { public: void Take() const {cout