Programming Language/C++
-
Destructuors 생성자와 소멸자의 호출 시기 Defalut Memberwise Assignment Copy Constructor Contst Object and const MemberFunctions 1. Destructors 1. 클래스 소멸자 소멸자의 이름: '~'에 클래스의 이름 붙임 객체 소멸 시 무조건 호출된다. 객체 생성시 할당된 메모리를 해제하지 않는다. - 소멸자 실행 후, 시스템이 객체의 메모리를 회수 -> 따라서, 메모리는 재사용돨 수 있게 됨 매개변수를 받지도 않고, 값을 반환하지도 않는다. (!= 생성자) 클래스는, 단 하나의 소멸자를 가질 수 있다. (!=생성자. 생성자는 여러개 받을 수 있다) 만약, 프로그래머가 명시적으로 소멸자 지정 안하면, 컴파일러는 '빈(empty)..
[객체지향프로그래밍 응용] 5주차Destructuors 생성자와 소멸자의 호출 시기 Defalut Memberwise Assignment Copy Constructor Contst Object and const MemberFunctions 1. Destructors 1. 클래스 소멸자 소멸자의 이름: '~'에 클래스의 이름 붙임 객체 소멸 시 무조건 호출된다. 객체 생성시 할당된 메모리를 해제하지 않는다. - 소멸자 실행 후, 시스템이 객체의 메모리를 회수 -> 따라서, 메모리는 재사용돨 수 있게 됨 매개변수를 받지도 않고, 값을 반환하지도 않는다. (!= 생성자) 클래스는, 단 하나의 소멸자를 가질 수 있다. (!=생성자. 생성자는 여러개 받을 수 있다) 만약, 프로그래머가 명시적으로 소멸자 지정 안하면, 컴파일러는 '빈(empty)..
2023.04.05 -
1. 함수 선언과 정의는 왜 분리하는가 함수선언(프로토타입) -> main함수에서 호출 -> 함수 정의 파트 : 코드를 숨기기 위해! (정보은닉과 관련) -> 구현부분은, 사람은 못읽는데 컴퓨터만 쓸 수 있도록. 사실 반한 값과 매개변수는 없을 수 있다 void func2(){ cout 이름 = 이름; 이런식으로 this포인터 사용
(int-i c++스터디) 함수/람다식/class1. 함수 선언과 정의는 왜 분리하는가 함수선언(프로토타입) -> main함수에서 호출 -> 함수 정의 파트 : 코드를 숨기기 위해! (정보은닉과 관련) -> 구현부분은, 사람은 못읽는데 컴퓨터만 쓸 수 있도록. 사실 반한 값과 매개변수는 없을 수 있다 void func2(){ cout 이름 = 이름; 이런식으로 this포인터 사용
2023.03.20 -
백준 10871문제를 풀었는데, 런타임 에러 발생 #include using namespace std; int X , N; int arr[] = { 0 }; int main() { cin >> N >> X; for (int i = 0; i > arr[i]; } for (int i = 0; i > N >> X; int arr[10000];//최대로 가질 수 있는 N은 10000이므로 for (int i = 0; i <..
런타임 에러백준 10871문제를 풀었는데, 런타임 에러 발생 #include using namespace std; int X , N; int arr[] = { 0 }; int main() { cin >> N >> X; for (int i = 0; i > arr[i]; } for (int i = 0; i > N >> X; int arr[10000];//최대로 가질 수 있는 N은 10000이므로 for (int i = 0; i <..
2023.03.20 -
1. OS로부터 메모리를 받아오기(할당받기) - new >> 주소와 값이 잘 나오는 것을 확인할 수 있다. 2. 할당 받은 메모리 주소를 다시 OS에게 돌려주기 **(중요) - delete 중요한 이유: 딥러닝 등 큰 프로젝트를 돌릴 때, 컴퓨터 한대로는 감당할 수 없는 데이터 양을 사용하게 된다. 메모리에, 데이터가 한 번에 안 들어갈 수 있다. >> 일부 데이터를 가지고 작업을 하고, 그 작업이 끝난 다음에, 메모리를 OS에 돌려줬다가, 다시 메모리를 받아서 데이터를 가져오는 경우가 필요하다. + 여러 프로그램이 동시에 메모리를 쓰고 싶으면, 그걸 동시에 이할 수 없다 -> 급한 프로그램에게 우선적으로 많이 줬다가, 급한 일이 끝나면 다시 메모리를 받아와서 다른 프로그램에게 주면 효율적으로 쓸 수 있..
메모리 동적 할당 new와 delete1. OS로부터 메모리를 받아오기(할당받기) - new >> 주소와 값이 잘 나오는 것을 확인할 수 있다. 2. 할당 받은 메모리 주소를 다시 OS에게 돌려주기 **(중요) - delete 중요한 이유: 딥러닝 등 큰 프로젝트를 돌릴 때, 컴퓨터 한대로는 감당할 수 없는 데이터 양을 사용하게 된다. 메모리에, 데이터가 한 번에 안 들어갈 수 있다. >> 일부 데이터를 가지고 작업을 하고, 그 작업이 끝난 다음에, 메모리를 OS에 돌려줬다가, 다시 메모리를 받아서 데이터를 가져오는 경우가 필요하다. + 여러 프로그램이 동시에 메모리를 쓰고 싶으면, 그걸 동시에 이할 수 없다 -> 급한 프로그램에게 우선적으로 많이 줬다가, 급한 일이 끝나면 다시 메모리를 받아와서 다른 프로그램에게 주면 효율적으로 쓸 수 있..
2023.03.18 -
포인터 연산과 배열 인덱싱 -포인터 연산이 array인덱싱에 사용된 - array 안의 내용물을 한 바퀴 돌면서 출력할 때, 포인터 연산을 사용할 수 있 int main(){ char[] = 'Jack Jack"; const int_n_name = sizeof(name)/sizeof(name[0]); //원소 갯수 구하는 방법: // sizeof(name) : 위 char[]의 전체 메모리 사이즈 //sizeof(name[0]) = sizeof(char) : 한 원소 // 단, Jack Jack 뒤에는, 한 글자(널)이 하나 더 숨어있다 } for (int i = 0; i실행결과: 정적 array도, 내부적으로는 포인터. 따라서,포인터 연산이 적용되고, 마지막 공백 한 칸까지 출력 C스타일의 문자열 기호..
포인터 연산과 배열 인덱싱 / C스타일의 문자열 기호적(symbolic) 상수포인터 연산과 배열 인덱싱 -포인터 연산이 array인덱싱에 사용된 - array 안의 내용물을 한 바퀴 돌면서 출력할 때, 포인터 연산을 사용할 수 있 int main(){ char[] = 'Jack Jack"; const int_n_name = sizeof(name)/sizeof(name[0]); //원소 갯수 구하는 방법: // sizeof(name) : 위 char[]의 전체 메모리 사이즈 //sizeof(name[0]) = sizeof(char) : 한 원소 // 단, Jack Jack 뒤에는, 한 글자(널)이 하나 더 숨어있다 } for (int i = 0; i실행결과: 정적 array도, 내부적으로는 포인터. 따라서,포인터 연산이 적용되고, 마지막 공백 한 칸까지 출력 C스타일의 문자열 기호..
2023.03.18