2025/11 6

c++ 클래스

c++ 은 클래스를 지원한다. 클래스는 쉽게 말해 함수와 변수를 담고 있는 객체다.분할 컴파일c++은 분할 컴파일을 지원한다. 같은 클래스를 여러개의 파일로 관리할 수 있다.#include "클래스이름"과 같이 적으면, 해당 파일은 이 클래스에 종속된다.따라서 헤더 파일에는 클래스의 선언만 하고, 소스 파일에 함수, 변수 등을 선언하는 방식으로 사용 가능하다.클래스의 컴파일헤더 파일은 단 한번 컴파일로 모든 헤더 파일을 컴파일하게 된다.즉 만약 내가 A라는 헤더파일을 만들고 B라는 헤더파일을 만들었다고 가정해보자. 이때 나는 두개의 클래스를 각각 include 할 필요가 없다. 하나만 include 해도 나머지 역시 자동으로 컴파일되기 때문이다.#pragma once컴파일시 한번만 정의되도록 한다. 추상..

공부/C++ 2025.11.12

c++ 함수2

인라인 함수컴파일시, 함수가 저장된 메모리 주소를 가르키는 것이 아닌, 함수 자체가 해당 부분에 삽입되도록 하는 함수다. 즉, 프로그램이 실행되며 메모리 주소 00001 에서 a라는 함수를 호출할때, a가 저장된 01000 으로 이동하는 대신, 컴파일 시점에 00001의 a호출 부분에 아예 a함수를 삽입해버리는 것이다. 그러면 00001에서 01000 으로 이동하는 대신, 그냥 순서대로 코드를 실행시키면 된다. 인라인 함수는 성능 향상의 이점이 있지만 함수가 간단하면 차이는 미미하다.#include using namespace std;inline int func(int);int main() { cout 함수 선언 앞에 inline을 붙여 만들수 있다. 디폴트 매개변수매개변수의 기본값을 지정해준다. ..

카테고리 없음 2025.11.12

c++ 함수

c++ 는 컴파일러가 main을 가장 마지막에 컴파일 하지 않는다. 따라서 main에서 사용된 함수가 main 아래에서 선언된 경우, 컴파일 되지 않은 함수를 인식하지 못해 오류가 발생한다.#include using namespace std;int main(){ hello();}void hello() { cout 이때 hello 는 main아래에 있어서 컴파일 시점에 오류가 발생한다.이를 막기 위해 함수 선언만 main위에 먼저 하고, 아래에서 다시 구현할 수 있다.void hello();int main(){ hello();}void hello() { cout 파라미터와 전달 인자함수를 호출할때 전달되는 값이 전달 인자, 함수 내부에서 사용되는 변수가 파라미터다. 전달인자란 실제 값, 파라미터는 함수 ..

공부/C++ 2025.11.10

c++ 포인터

포인터모든 변수는 메모리의 특정 주소에 저장된다. 주소는 다음과 같이 알 수 있다. #include int main(){ int x; std::cin >> x; std::cout 앞에 &를 붙이면 알 수 있다.다만 이렇게 하려면, 반드시 값변수를 선언해야 한다. 먼저 값 변수를 선언하지 않고, 메모리 주소로 선언하는 변수가 바로 포인터다.포인터는 다음과 같이 선언 가능하다.#include int main(){ int x = 3; int* y = &x; int *z = y; std::cout *를 띄어쓰기 하고 붙이거나, 그냥 바로 붙여도 상관없다.실제 해당 메모리 주소가 표현하는 값을 알고 싶으면 변수명 앞에 *를 붙이면 된다.포인터는 배열로 선언할 수도 있다.이때 ..

공부/C++ 2025.11.09

c++ 기본 문법

기본 자료형1) char : 문자 한글자를 담는 자료형. 기본 1바이트다.2) short : 2바이트의 정수를 담을 수 있는 자료형. 2^16 만큼 표현 가능하다.3) int : 4바이트의 정수를 담을 수 있는 자료형. 2^32 만큼 표현 가능하다.4) long(long long int) : 8바이트를 담을수 있는 자료형. 2^64 까지 표현 가능하다. 본래 long long int 이니 long으로 줄여서 표현한다.5) float: 4바이트. 소수를 담을수 있다. 소수점 7자리까지 정확하게 표현 가능하다.6) double: 8바이트. 소수를 담을수 있다. 소수점 15~16 자리까지 정확하게 표현 가능하다.7) bool : 1바이트. 0과 1만 표현 가능하며, 0은 false, 1은 true 를 의미한다..

공부/C++ 2025.11.09

오픈미션 미션 정하기

이번 미션에서는 자유 주제다. 아무거나 자신의 한계를 도전해볼만한 주제를 정해서 과제를 수행해서 결과물을 제출해야 한다. 일정은 최대 3주.내가 고려한 주제는 다음과 같다.1. 내가 원하는 커스텀 AI 만들기2. 나만의 언어 새롭게 만들기3. 톰캣같은 서버 구축하기4. jvm 커스텀하여 내가 원하는 문법 추가하기1번은 너무 비현실적인 목표라고 생각했다. ai를 학습시킬 방법이 없을 뿐더러, RAG만 올리는 것은 내 목표와 다르고 너무 쉽기 때문이다. 3번은 반대로 너무 난이도가 높다고 생각해서 포기했다. 나는 최대한 외부 라이브러리를 사용하지 않고 저수준까지 내가 구현하는 방식으로 만들고 싶은데, 3주 안에 할 분량이 아니라고 판단이 되었다. 4번은 단순 구현은 너무 간단하고, 깊게 들어가려면 너무 어려..