목록Language/C++ (6)
코딩하는 오징어
안녕하세요. 코딩하는 오징어입니다. 오늘은 C와 C++의 차이점인 클래스에 대해서 포스팅하겠습니다! 드디어 클래스 단계까지 왔습니다. 객체지향언어에서 클래스는 상당히 중요한 자리를 차지하고 있죠!먼저 용어를 좀 정리하고 시작하겠습니다. 첫 번째로 OOP에서 클래스와 객체는 다른 의미를 가진 단어입니다. 클래스는 객체를 만들기 위한 설계도이고 이 설계도를 가지고 공간을 할당 받아 실체화 한 것이 객체입니다. 즉 어떤 특정한 객체에 대한 클래스는 하나라고 할 수 있고 어떤 클래스에대한 객체는 여러개라고 말 할 수 있습니다. 설계도 하나 가지고 여러개의 똑같은 것을 찍어 낼 수 있으니까요. 두 번째로 클래스안에는 멤버 변수와 멤버 함수를 선언할 수 있습니다. 멤버변수는 C의 구조체에도 있지만 멤버 함수는 클래..
안녕하세요. 코딩하는 오징어입니다. 긴 연휴들 잘 보내시고 계신가요?? 저는 하루종일 과제만하다 머리도 식힐겸 포스팅을 하게 됐네요.ㅠㅠ 과제를 하다 C로 명령어들을 파싱하고 쓰레드를 돌리는 부분이 있었는데 꽤 괜찮아 보여서 이 부분은 linux나 os 공간에 포스팅을 하겠습니다. 관심이 있으신 분들은 와서 구경 한번 하고 가세요~ 오늘은 C 에서 사용하는 malloc()과 free(), C++에서 사용하는 new, delete를 비교해보겠습니다.먼저, malloc()함수와 free()함수 그리고 new, delete연산자는 런타임 도중에 공간을 새로 할당받아서 동적으로 메모리를 관리 하는 것입니다. 메모리상에는 heap공간을 사용하게 됩니다. 위에 말씀드린 것과 같이 malloc과 free는 함수이지만..
안녕하세요. 코딩하는오징어입니다. 오늘은 함수 오버로딩과 매개변수의 디폴트 값을 알아 보겠습니다. 먼저 함수 오버로딩에 대해서 알아 보겠습니다. 함수 오버로딩은 어려운 개념이 아닙니다. 함수의 이름이 같더라도 함수의 시그니처(signature)가 다르면 시그니처에 따라 함수를 구분 지어주는 것인데요. 여기서 함수의 시그니처에 해당하는 부분을 알아보겠습니다. 위와 같이 함수명, 매개변수의 타입, 매개변수의 갯수에 해당하는 것들이 함수의 시그니처입니다. 이것을 가지고 어떤 함수가 호출 될것인지 컴파일러가 정하게 되는 것입니다. 따라서 이것들 중 하나라도 다른 것이 있다면 다른 함수로 구분되어 지는 것입니다. 예제 코드를 보겠습니다. (return type은 함수의 시그니처로 포함되어 있지않습니다. 따라서 r..
안녕하세요. 코딩하는오징어 입니다. 오늘은 참조에 대해서 알아보려합니다. 사실 참조변수는 java에서도 똑같이 적용되는 부분이죠? 여기는 C++게시판이니 C++에 관점에서 살펴보도록 하겠습니다. 먼저 참조변수를 선언할 때 룰 부터 외워두고 갑시다. 룰은 룰이니 그냥 외우세요. 참조자는 변수에 대해서만 선언이 가능하고, 선언됨과 동시에 누군가를 참조해야만 합니다. 즉, 다음의 선언은 유효하지 않습니다. int &ref = 20; 20은 변수가 아니라 상수죠?? int &ref;ref = var; 선언과 동시에 초기화 되어야하는데 룰에 어긋났기 때문에 이러한 선언도 안됩니다. 자, 그럼 룰은 룰대로 외워주시고 참조자에 대해 설명해드리겠습니다. 참조자는 변수에 별명을 붙여준다고 생각하면 편리합니다. 사실 참조..
안녕하세요. 코딩하는오징어 입니다. 오늘은 네임스페이스에대해 포스팅하겠습니다. 네임스페이스는 어려운개념이 아닙니다. 단순히 이름공간을 따로 생성해줌으로써 협업을 하게 될 경우 함수명이나 변수명이 겹치게 되는 문제를 해결하기 위한 방법입니다. 매우 간단한 개념이므로 예제코드를 보면서 설명하겠습니다. 코드만 봐도 아 이런거구나 느낌이 오시죠??! 네 그렇습니다. 네임스페이스를 만들어 놓으면 함수 시그니처가 똑같더라도 중복문제가 발생하지 않습니다. 이 때, scope operator로 (범위지정 연산자) 구분하게 되는데요. 네임스페이스::함수명 이렇게 구분하게 됩니다. 여기서 ::이것이 범위지정 연산자입니다. 네임스페이스뿐만아니라 클래스 부분에서도 쓰이게되는 연산자이기 때문에 기억해두시기 바랍니다. 위에 코드..
안녕하세요 코딩하는 오징어입니다. 오늘은 visual studio 에서 디버깅하는 법을 알아 보겠습니다. 저는 IDE를 쓸 때 제일 먼저 하는 일이 그 IDE환경에서 디버깅하는 방법 부터 알아 보는 스타일입니다. eclipse에서도 단축키정도만 다를 뿐 visual studio와 일맥 상통합니다. (gdb로 디버깅 하시길 원하는 분들은 다음에 linux부분에서 포스팅하도록 하겠습니다.)소스코드는 알고리즘 과제 입니다...소스코드는 무시하시고 디버깅에만 집중해주시면 감사하겠습니다. ㅎㅎ 먼저 run_time error가 났습니다. 어디서 프로그램이 죽었는지 머리로 계산하지마세요. F5를 누르면 error 발생 지역으로 갑니다. line 18왼쪽에 노란색 화살표가 보이시나요??? 에러의 원인입니다. (lis..