728x90
반응형
SMALL

Language/C++ 8

[C++] 스마트 포인터

스마트 포인터에 대한 정리RAII(Resource acquisition is initialization) 패턴객체가 쓰이는 Scope를 벗어나면 Resource를 해제해주는 기법bool error() {    return true;}void fnc() {    int* c = new int[100];    if (error()) return;    delete[] c;}int main(void) {    fnc();    _CrtDumpMemoryLeaks();        return 0;}Detected memory leaks! Dumping objects -> {156} normal block at 0x00C60C58, 400 bytes long. Data: CD CD CD CD CD CD CD ..

Language/C++ 2023.09.25

[C++] OOP 특징

OOP 특징 및 핵심 개념에 대한 정리OOP(Object Oriented Programming)객체지향 프로그래밍필요한 데이터를 추상화하여 속성과 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 캡슐화(Encapsulation)객체의 속성과 행위를 하나로 묶고 구현 코드를 외부에 감춰 은닉하는 것데이터 번들링(Data bundling) - 변수와 함수를 하나의 단위로 묶는 것멤버 변수 + 멤버 함수 + 접근지정자를 =  클래스로 캡슐화 지원정보 은닉(Information hiding) - 클래스 내부 구현을 외부로 드러나지 않도록 감춤추상화(Abstraction)중요하고 필요한 정보만 표현하기 위해 객체의 공통적 속성과 행위를 하나로 묶는 것 상속(In..

Language/C++ 2023.09.18

[C++] 클래스(Class)

C언어에서의 구조체사용자가 여러 데이터(멤버 변수)를 가지고 새롭게 정의할 수 있는 사용자 정의 타입 struct Person { char* name; int age;}; void PrintPerson(struct Person p) { printf(“%s, %d\n”, p.name, p.age);}void main() { struct Person jane, john; jane.name = “Jane Smith”; jane.age = 20; PrintPerson(jane); john.name = “John Smith”; john.age = 15; PrintPerson(john);} C++에서의 클래스사용자가 여러 데이터(멤버 변수), 데이터를 조작하는 방법(멤버 함수, 매소드..

Language/C++ 2023.09.17

[C++] 띄어쓰기 포함 문자열 입력

C++로 띄어쓰기(공백)를 포함해서 문자열 입력 받는 방법 정리cincin을 사용하여 아래와 같이 코드 작성 시 띄어쓰기 전 까지만 저장됨string s;cout > s;cout 띄어쓰기 포함 입력 방법1. getline 함수 사용string 헤더에 정의 되어있는 함수#include int main(void) { string s; cout  2. cin.getline 사용instream에 정의 되어있는 함수로, char* 를 입력받고, 마지막 매개변수로 구분자 지정 가능#include int main(void) { char s[100]; cout

Language/C++ 2023.09.12

[C++] STL String 사용법 및 예제

C++ STL중 하나인 String 사용법에 대한 정리(+예제) String C++ 표준 라이브러리(Standard Template Library)로 string(문자열)을 다루는 클래스 C언어의 char*, char[] 처럼 문자열 끝에 '\0' 이 없음 문자열 길이 동적으로 변경 가능 String 선언 #include string s; // 빈 문자열 s 생성 string s = "hello"; // hello로 초기화된 s 생성 String 멤버함수 원소 접근 s[i]; // s의 i번째 원소 참조 s.at[i]; // s의 i번째 원소 참조 (유효 범휘 체크 O) s.front(); // s의 첫번째 원소 참조 s.back(); // s의 마지막 원소 참조 삽입/삭제 string s // s.pu..

Language/C++ 2023.08.15

[C++] 연산자 오버로딩(Operator Overloading)

연산자 오버로딩에 대한 정리(+예제) 연산자 오버로딩(Operator Overloading) 기존 정의되어있는 연산자를 재정의하여 사용자 정의 클래스로 사용하는것 객체들의 연산을 편리하게 하기 위함 operator 연산자 형태로 함수 이름 선언 오버로딩 불가능한 연산자 . 멤버 접근 연산자 .* 멤버 포인터 연산자 :: 범위 지정자 ?: 조건연산자 예시 Virus라는 class를 정렬할때, 멤버 변수인 size를 기준으로 정렬하고자할때 사용 class Virus { public: int size; // 바이러스 크기 int x; // 바이러스 x 좌표 int y; // 바이러스 y 좌표 int second; // 바이러스 전염 시간 // Virus 생성자 Virus(int size, int x, int ..

Language/C++ 2023.07.17

[C++] STL Pair 사용법 및 예제

C++ STL중 하나인 Pair 사용법에 대한 정리(+예제) Pair 2개의 타입의 데이터를 한쌍으로 묶어 저장하는 기능을 제공하는 클래스 operator로 ==, !=, , = 가 정의 되어있음 sort 함수로 정렬 가능 Pair 선언 #include // 실제 pair의 헤더파일 #include // utility 헤더파일 포함 #include // utility 헤더파일 포함 //pair p; pair p; pair p; Pair 멤버함수 원소 접근 pair p; p.first = 1; //pair의 첫번째 인자에 접근 p.second = 2.1; //pair의 두번째 인자에 접근 생성 pair p; p = make_pair(2, 4); Vector 응용 #include ve..

Language/C++ 2023.07.10

[C++] STL Vector 사용법 및 예제

C++ STL중 하나인 Vector 사용법에 대한 정리(+예제) Vector C++ 표준 라이브러리(Standard Template Library)에 있는 순차 컨테이너(Sequence Container)로 크기가 가변적으로 변하는 배열 자동으로 메모리가 할당되는 배열 메모리에 연속적으로 저장 맨 끝에서만 삽입과 삭제가 이루어짐 template을 이용하기 때문에 자유롭게 데이터 타입 사용 가능 원소가 삽입될때 메모리 재할당이 발생 할 수 있음 Vector 선언 #include vector v; // vector 이름 -> 크기 지정 X vector v(10) // vector 이름(크기) vector v(10, 1) // vector 이름(크기, 초기화 상수) -> 크기 10 벡터를 1로 초기화 vect..

Language/C++ 2023.07.10
728x90
반응형
LIST