개인공부/C++(44)
-
객체 지향 프로그래밍 정리
객체란? 객체란, 변수들과 참고 자료들로 이루어진 소프트웨어 덩어리이다. 객체가 현실 세계에서의 존재하는 것들을 나타내기 위해서는 추상화(abstraction)라는 과정이 필요하다. 아래의 그림은 객체를 간단하게 표현한 그림이다. 이와 같이 어떠한 객체는 자기만의 정보를 나타내는 변수들과, 이를 가지고 어떠한 작업을 하는 함수들로 둘러싸고 있다. 참고로, 이러한 객체의 변수나 함수들을 보통 인스턴스 변수(instance variable)와 인스턴스 메서드(instance method)라고 부르기도 한다. 외부에서 직접 인스턴스 변수의 값을 바꿀 수 없고 항상 인스턴스 메서드를 통해서 간접적으로 조절하는 것을 캡슐화(Encapsulation)라고 부른다. 캡슐화의 장점은 간단하게 "객체가 내부적으로 어떻게..
2023.03.18 -
참조자 공부 내용 정리
레퍼런스 선언하기 int형 변수의 참조자를 만들고 싶을 때에는 int&를 double의 참조자를 만들려면 double&이다. 자료형 뒤에 &를 붙여서 선언이 가능하다. 참조자는 컴파일러에게 num1의 또 다른 이름은 num1이라고 알려주는 것이다. 1 2 3 4 5 6 7 8 #include int main() { int num1 = 5; int& num2 = num1; return 0; } cs 레퍼런스 특징 래퍼런스는 반드시 처음에 누구의 별명이 될 것인지 지정해합니다. 1 2 int& another_a; // 오류: 참조 변수에 이니셜라이저가 필요합니다. cs 이런 식으로 참조자는 이니셜라이저 없이는 선언이 불가능합니다. 두 번째 특징으로는 레퍼런스는 한 번 별명이 되면 절대로 다른 이의 별명이 될..
2023.03.17 -
범위 기반 for 문(range-based for statement)
범위 기반 for 문의 문법 1 2 for (element_declartion : array) statement; cs 루프는 각 array 의 요소를 반복하여 element_declaration에 선언된 변수에 현재 배열 요소의 값을 할당한다. 최상의 결과를 얻으려면 element_declararion 이 배열 요소와 같은 자료형이어야 한다. 그렇지 않으면 형 변환이 발생한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include #include using namespace std; int main() { vector vec; for (int i = 0; i
2023.03.14 -
new 이중 배열 선언
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 #include using namespace std; int main() { // 행열 길이 int Row, Col; cin >> Row >> Col; // 이중포인터 arr에 int 자료형 주소값을 저장하는 배열 생성 int** arr = new int*[Row]; for (int i = 0; i
2023.03.06 -
C++ Array 배열 초기화 방법
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 #include using namespace std; int main() { // 1. 간단한 배열 초기화 방법 int Arr[3] = { 0,1,1 }; // 2. fill_n ( 배열의 주소, 초기화하려는 배열의 구간, 초기화 값) fill_n(Arr, 3, 5); // 3. for문 사용 for (int i = 0; i
2023.01.29 -
C++ 난수 생성
C 스타일의 난수 생성의 문제점 1 2 3 4 5 6 7 8 9 10 11 12 #include #include #include int main() { srand(time(NULL)); for (int i = 0; i C++에서는 C의 srand 와 rand 는 갖다 버리자! C++ 난수 생성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include #include int main() { // 시드값을 얻기 위한 random_device 생성. std::random_device rd; // random_device 를 통해 난수 생성 엔진을 초기화 한다. std::mt19937 gen(rd()); // 0 부터 99 까지 균등하게 나타나는 난수열을 생성하기 위해 균등 분..
2023.01.16