본문 바로가기

C++

(6)
4.2 함수의 오버로딩, 생성자 #include void print(int x){ std::cout print 이름의 함수가 3개 정의되어있지만 C++ 에서는 함수의 이름이 같더라도 인자가 다르면 다른 함수라고 판단하기 때문에 오류가 발생하지 않는다.오버로딩 과정으로1 : 타입이 정확히 일치하는 함수 탐색2 : 형변환을 통해 일치하는 함수를 탐색3 : 포괄적인 형변환을 통해 일치하는 함수를 탐색
4. 객체 C 를 통해 대형 프로젝트를 개발하기 위해서는 많은 어려움객체란?이전에 Animal 구조체를 정의한 후, animal 변수를 만들어서 이를 필요로 하는 함수들에게 전달해주었다.2024.06.15 - [C++] - 3. new, delete 3. new, delete메모리를 관리하는 문제는 중요한 문제이다. 프로그램이 정확하게 실행되기 위해서는 컴파일 시에 모든 변수의 주소값이 확정되어야만 했다.하지만 이를위해서는 많은 제약이 따르기 때문에teach-meaning.tistory.com그런데 Play 함수에 인자로 전달하는 것이 불필요해 보인다. 객체는 다음과 같이 정의된다.객체란, 변수들과 참고 자료들로 이루어진 소프트우에 덩어리이다.객체가 현실 세계에서의 존재하는 것들을 나타내기 위해서는 추상화 abst..
3. new, delete 메모리를 관리하는 문제는 중요한 문제이다. 프로그램이 정확하게 실행되기 위해서는 컴파일 시에 모든 변수의 주소값이 확정되어야만 했다.하지만 이를위해서는 많은 제약이 따르기 때문에 프로그램 실행 시에 자유롭게 할당하고 해제할 수 있는 힙 이라는 공간이 따로 생겼다.C 에서는 malloc 과 free 함수를 통해 힙 상에서의 메모리 할당을 지원, C++ 에서도 마찬가지,언어 차원에서 지원하는 것이 바로 new 와 delete 이다. #include int main(){ int*p = new int; *p = 10; std::cout int 크기의 공간을 할당하여 그 주소값을 p 에 집어넣었다.그리고 p 위치에 할당된 공간에 값을 집어넣었고 이를 출력,마지막으로 할당된 공간을 해제 new 로 ..
2. 참조 C++ 에 새로 도입된 새로운 개념인 참조자 ( 래퍼런스, reference ) 에 대해 확인 참조자의 도입#include int change_val(int *p) { *p = 3; return 0;}int main(){ int number = 5; std::cout  change_val 함수의 인자 p 에 number 의 주소값을 전달하여 *p 를 통해 number 를 참조하여 number 의 값을 3으로 바꾸었다. C 언어에서는 변수를 가리키고 싶을 때 반드시 포인터를 사용했어야 했다. 그런데 C++ 에서는 다른 변수나 삿ㅇ수를 가리키는 방법으로 또 다른 방식을 제공하는데, 이를 바로 참조자(레퍼런스, reference) 라고 부른다.#include int main() { ..
1.2 C 와 C++ (기본 문법 비교) C++ 은 C 언어의 문법을 거의 완전하게 포함하고 있다.#include int main(){ int i; char c; double d; float f; return 0;}배열이나 포인터를 정의하는 방법도 동일 포인터에서의 *, & 의 역할도 동일하다 int arr[10]; int *parr = arr; int i; int *pi = &i; 다른 문법 구조의 확인#include int main(){ int i; for (i = 0, i 동일한 for 문,#include int main (){ int i = 1, sum = 0; while ( i while 문도 동일#include int main(){ int lucky_numbe..
왜 C++ 인가 (namespace) 컴파일러, 운영체제, 상용 프로그램특히 딥러닝 프레임워크는 모두 C++ 로 만들어져 있다.프로그램의 성능이 중요한 부분에서 많이 쓰이고 있음첫 C++ 프로그램#include int main() { std::cout 1 : iostream 이란 헤더파일을 include 하고 있다.iostream 헤더 파일은 C++ 에서 표준 입출력에 필요한 것들을 포함하고 있다. 3 : main 함수를 정의하는 부분cout 앞의 std 는 C++ 표준 라이브러리의 모든 함수, 객체 등이 정의된 namespace 이다.이는 말그대로 어떤 정의된 객체에 대해 어디 소속인지 지정해주는 것과 동일하다. 코드의 크기가 늘어나면서 중복된 이름을 가진 함수들이 많아지는데 C++ 에서는 이를 구분하기 위해, 같은 이름이라도, 소속..