일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gpt
- Classification
- ChatGPT
- 해커톤
- OpenAI
- PCA
- LLM
- 분류
- 지도학습
- AI
- 오블완
- GPT-4
- regression
- deep learning
- Machine Learning
- 회귀
- 딥러닝
- LG Aimers
- 머신러닝
- supervised learning
- LG
- LG Aimers 4th
- 티스토리챌린지
- Today
- Total
목록전체 글 (355)
SYDev
객체(Object) : 컴퓨터 과학에서 객체란 클래스에서 정의한 것을 토대로 메모리에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며, 변수, 자료 구조, 함수 또는 메소드가 될 수 있다. 절차적 프로그래밍에서의 객체 하나의 객체는 자료나 명령을 포함할 수 있지만 두 가지를 동시에 포함하지 않는다. 객체지향 프로그래밍에서의 객체 객체지향 프로그램에서 객체는 클래스(class)의 인스턴스(instance)이다(메모리상에 구현된 객체가 인스턴스). 클래스는 객체를 설계할 때 필요한 설계도이고, 객체는 class가 만들어진 결과물이다. 다음 예제를 살펴보자. Car car1("car1", "old", 100) Car car2("car2", "new", 200) 다음과 같..
클래스(Class) vs. 구조체(Struct) Chapter 03-1에서 설명한 구조체는 클래스의 일종이다. 또한 구조체를 작성해놓은 코드에서 키워드 struct만 class로 바꿔버리면 구조체가 클래스로 바뀌어버린다. 그렇다면 이외에 클래스와 구조체는 무슨 차이점이 있을까? 접근제어 지시자(접근제어 레이블) 클래스와 구조체의 유일한 차이점은 변수 및 함수의 접근 허용범위 설정의 유무이다. 클래스는 구조체와 달리 정의하는 과정에서 클래스 내부의 변수 및 함수의 접근 허용범위를 별도로 선언해야 한다. 그리고 이런 클래스의 접근제어 지시자에는 총 3가지가 있다. public // 어디서든 접근 허용 protected // 상속관계에 놓여있을 때, 유도 클래스에서의 접근 허용 private // 클래스 내부..
C++에서의 구조체 변수 선언 구조체는 연관 있는 데이터를 묶을 수 있는 문법적 장치이다. 이런 구조체가 어떤 상황에 필요할까? 우리는 하나의 객체에 대하여 여러가지 변수를 선언해야할 때가 있다. 예를 들어서 하나의 자동차가 있다면 이에 대해서 소유주, 연료량, 현재속도 등의 정보가 필요하다. 이런 객체의 정보를 그룹화되지 않은 독립변수로 선언한다면 새로운 객체가 등장할 때마다 똑같은 정보를 매번 새로 만들어야 하는 불편함이 생긴다. 이런 불편함을 덜기 위해서 c++에서는 하나 이상의 변수를 묶어서 새로운 자료형을 정의하는 구조체(struct)를 이용할 수 있다. 구조체는 다음과 같이 정의할 수 있다. struct Car { char gamerID[ID_LEN]; //소유자ID int fuelGauge;..
C++에서 C언어의 표준함수 호출 C언어의 라이브러리에 있는 함수들을 이용하기 위해서는 .h를 생략하고 앞에 c를 붙이면 된다. #include -> #include #include -> #include #include -> #include #include -> #include 이와 관련된 다음 예제를 살펴보자. #include #include #include using namespace std; int main(void) { char str1[] ="Result"; char str2[30]; strcpy(str2,str1); printf("%s: %f \n", str1, sin(0.14)); printf("%s: %f \n", str2, abs(-1.25)); return 0; } Result: 0.1..
동적 메모리 할당 & 정적 메모리 할당 동적 메모리 할당 : 동적 메모리 할당은 컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것이다. 정적 메모리 할당 : 정적 메모리 할당은 메모리 할당 방법 중 하나로, 프로그램이 실행될 때 이미 메모리의 크기가 결정된다. 정적 메모리 할당의 예시는 다음과 같다. char examples[10]; 위처럼 코드를 입력하면 char 자료형 10개가 나란히 선언되고, examples 배열에는 10개의 자료형만 들어갈 수 있다. 동적 메모리 할당을 하는 이유? 정적 메모리 할당을 하면 기억공간이 낭비될 경우가 생긴다. 예를 들어서 위에서 선언한 examples에는 10글자를 넣을 수 있는데 이에 미치지 못하는 글자수를 가진 문자형을 넣는다면 그만큼 메모..
참조자를 이용한 Call-by-reference의 단점 참조자는 함수 정의에 활용했을 때 포인터보다 더 이용하기 쉽다는 장점을 가지고 있다. 그러나 단점 또한 가지고 있는데 이와 관련해 다음 코드를 살펴보자. int num = 20; MyFunc(num); cout
함수에서의 참조자 참조자는 다음과 같이 함수에서 매개변수로 선언될 수 있다. void MyFunc(int &ref1, int &ref2) { . . . } 지난 게시물 C++ Chapter 02-3 : 참조자(Reference)에 따르면 참조자는 선언과 동시에 초기화돼야 한다는 것을 기억할 것이다. 그렇다면 위 구조는 어떻게 가능한 것일까? 매개변수는 함수가 호출되는 동시에 초기화가 진행되는 변수들이다. 즉, 함수에 인자를 입력하면 해당 변수의 참조자로서 ref1, ref2가 선언과 동시에 초기화되는 것이다. 그렇다면 이렇게 선언된 참조자는 함수에서 어떻게 사용될까? 이를 알기 위해서는 call-by-value와 call-by-reference를 먼저 이해해야 한다. Call-by-value & Call..

위 그림은 컴퓨터 프로그램 메모리의 전형적인 레이아웃이다. 프로그램을 실행시킬 때 운영체제는 프로그램에 메모리 공간을 할당해주는데 이때 이 메모리 공간은 크게 데이터(data), 힙(Heap), 스택(stack) 영역으로 나눠진다. 데이터(Data) 영역 : 데이터 영역은 전역변수, static 변수가 할당되는 영역이다. 프로그램 시작과 동시에 할당되고 프로그램 종료시 메모리에서 소멸된다. 스택(Stack) 영역 : 스택 영역은 지역 변수, 매개 변수가 저장되는 영역이다. 함수 호출 시에만 사용되고 호출이 완료되면 사라진다. 힙(Heap) 영역 : 힙 영역은 동적으로 메모리를 할당할 때 사용되는 영역이다. 힙 영역의 이용에 대해 자세하게 알기 위해서는 동적 할당에 대해서 공부해야 한다. 참고자료 http..