일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- LG Aimers 4th
- regression
- 오블완
- Classification
- 분류
- deep learning
- 지도학습
- ChatGPT
- LG
- 머신러닝
- supervised learning
- LLM
- LG Aimers
- AI
- OpenAI
- GPT-4
- Machine Learning
- 딥러닝
- gpt
- PCA
- 해커톤
- 티스토리챌린지
- 회귀
- Today
- Total
목록Programming Lang (84)
SYDev
문제 Self-Reference의 반환 파트에서 다음 코드를 보고 의문점이 생겼다. SelfRef& ShowTwoNumber() // 객체 자신의 참조의 정보(참조값)을 반환 { cout
연산자 오버로딩 #include using namespace std; class Point { private: int xpos, ypos; public: Point(int x=0, int y=0) : xpos(x), ypos(y) { } void ShowPosition() const { cout
다중상속은 논란이 많은 문법이지만, 예외적으로 혹은 매우 제한적으로 적용할 수도 있으므로 공부해보자. 다중상속은 다음 예제와 같이 간단하게 선언할 수 있다. #include using namespace std; class BaseOne { public: void SimpleFuncOne() { cout
멤버함수의 동작원리 멤버변수와 달리, 멤버함수는 객체 내부에 존재하는 것이 아니고 메모리의 한 공간에 별도로 존재한다. 해당 함수가 정의된 클래스의 모든 객체가 이 함수를 공유하는 형태이다. 가상함수의 동작원리와 가상함수 테이블 가상함수의 동작원리를 알아보기 위해 예제를 하나 살펴보자. #include using namespace std; class AAA { private: int num1; public: virtual void Func1() { cout
가상함수 말고도 virtual 키워드를 붙여줘야 할 대상이 하나 더 있는데, 그게 바로 소멸자이다. 가상 소멸자(Virtual Destructor) virtual로 선언된 소멸자를 '가상 소멸자'라 하는데 이것이 필요한 이유와 설명을 위해 예제를 하나 살펴보자. #include #include using namespace std; class First { private: char * strOne; public: First(char * str) { strOne = new char[strlen(str)+1]; } ~First() { cout
기초 클래스의 포인터로 객체를 참조하는 경우 우선 글을 시작하기 전에 핵심부터 말하고 시작하겠다. "C++ 컴파일러는 포인터 연산의 가능성 여부를 판단할 때, 포인터의 의 자료형을 기준으로 판단하지, 실제 가리키는 객체의 자료형을 기준으로 판단하지 않는다." 예를 들어서 BaseFunc 이라는 함수를 멤버로 가진 Base라는 기초 클래스와 DerivedFunc 이라는 함수를 가진 Derived라는 유도 클래스가 있다고 가정해보자. 그렇다면 다음 문장은 컴파일 에러를 일으킨다. Base * bptr = new Derived(); bptr -> DerivedFunc();//compile error 포인터 객체를 정의하고 연산의 가능성 여부를 판단할 때, 포인터의 자료형을 기준으로 판단한다.결론적으로 포인터 ..
객체 포인터 변수 : 객체의 주소 값을 저장하는 포인터 변수 C++에서, AAA형 포인터 변수는 AAA객체 or AAA를 직접 혹은 간접적으로 상속하는 모든 객체를 가리킬 수 있다(객체의 주소 값을 저장할 수 있다.) 다시 말해서 Person이라는 기초 클래스와 Student라는 유도 클래스, 추가적으로 Student를 상속하는 PartTimeStudent 클래스가 있다고 가정했을 때, 다음과 같은 문장들이 가능해진다. Person * ptr = new Student(); Person * ptr = new PartTimeStudent(); // 간접 상속의 경우에도 가능 Student * ptr = new PartTimeStudent(); 이와 관련된 다음 예제를 살펴보자. #include using n..

상속으로 클래스의 관계를 구성하기 위해서는 조건이 필요하다. 조건과 그에 따른 필요조건이 충족되지 않는다면, 상속은 하지 않는 것만 못하다. 상속을 위한 기본 조건인 IS-A 관계의 성립 IS-A 관계가 의미하는 것은 간단하다. 컴퓨터와 노트북 컴퓨터를 생각해보자. 노트북 컴퓨터는 컴퓨터의 특징을 모두 가지고 거기에 자신만의 "이동성"이라는 특징이 추가된다. 그렇기 때문에 노트북 컴퓨터는 일종의 컴퓨터라고 할 수 있다. 이를 바꿔서 말하면 "노트북 컴퓨터 is a 컴퓨터"라고 표현할 수 있는데, 여기서 사용되는 is a 라는 두 단어가 성립되는 관계가 IS-A관계이다. 이를 클래스의 개념에서 다시 살펴보자. 클래스 Computer와 이를 상속하는 NotebookComp가 있다면 둘은 IS-A 관계가 성립..