본문 바로가기

전체42

getchar() 비주얼 스튜디오를 써 본 사람이라면 컴파일을 할 때 f5 또는 ctrl+f5을 사용하여 실행할 것이다. 둘의 차이를 알아보자.f5와 ctrl+f5의 차이는 비주얼 스튜디오가 함께 실행되느냐 실행파일만 독립적으로 실행되느냐의 차이이다. f5입력시 비주얼 스튜디오가 함께 실행되어서 디버그모드로 실행이 된다. 하지만 ctrl+f5로 실행 시 실행파일만 실행이 된다.코딩을 하다가 에러가 나면 에러를 찾아야 하는데 1학년 때의 나는 에러가 어디서 났는지 비주얼 스튜디오의 하단부에 있는 출력 창에서 찾아야만 했다. 몇 번째 줄에서 문제가 생겼는지 나오는 경우에는 찾아서 코드를 읽어보고 찾았지만 나오지 않는 경우에는 해결할 줄 몰랐다.때문에 우리는 디버그모드를 사용해야 한다. 중단점을 찍어 디버그를 통해 에러를 찾고.. 2016. 11. 11.
생성자(Constructor)란? 생성자(Constructor)란 C++에서 클래스의 객체 생성 시 동시에 호출이 되는 것이다. 일반적인 함수처럼 생겼으며 클래스와 동일한 이름을 가지고 있다. 회사 면접이나 테스트에서 영어로 나오는 경우가 있으니 Constructor라는 용어도 꼭 알아두자. (생성자 == Constructor) 눈에 익숙해지도록 계속 언급하겠다.생성자(Constructor)는 따로 명시해주지 않아도 알아서 생성이 된다. (컴파일러가 자동으로 생성해주는 세 가지: 생성자(Constructor), 복사 생성자(Copy Constructor), 대입 연산자 이 세 가지는 눈에 익도록 잠시 읽어보자. 계속해서 언급할 것이다.)해당 클래스의 객체를 생성할 때 생성자(Constructor)의 형태로 생성한다. 이전 장에서 객체는 .. 2016. 11. 11.
인자(Argument)와 매개변수(Parameter) 인자와 매개변수의 차이는 아주 간단한 기초지식이지만 중요한 포인트다. 둘은 비슷한 듯 보여도 사실은 전혀 다른 것을 가리키고 있기 때문에 언급하고 넘어간다.인자는 함수를 호출할 때 함수 매개변수로 넘겨지는 값을 말하고,매개변수, 즉 파라미터는 함수 선언 부에 괄호 안에 정의된 변수이다. 인자를 받아서 그 값을 담는 변수라고 보면 된다.앞선 장에서 봤던 코드를 보자. 여기서 Student라는 생성자를 보자. 생성자에 대해서는 다음 장에서 설명을 할 테니 void Student라는 일반 함수라고 생각하고 이해하도록 하자.class.h의 8번째 줄 Student(string name) 에서 string name이 바로 파라미터이다.class.cpp의 5번째 줄에서 “Jun”이 바로 인자이다. Jun이라는 문자.. 2016. 11. 11.
객체란? 객체는 실체(Instance)를 말한다.Class와 Instance를 구분할 줄 알아야 한다.우리가 클래스를 만들어 메인 함수 또는 다른 함수에서 클래스를 사용하려 할 때 인스턴스화(객체화)를 통해 실제로 메모리 상에 올라가야 그것을 객체라 지칭하고 사용할 수가 있다. 이 때 우리는 클래스의 형식을 가진 객체, 즉 실체(Instance)를 만드는 것이다. 예를 들어보자.형준은 실체이고 진환은 실체이다. 진환과 형준이 가진 학생이라는 특성은 class가 된다. 우리가 학생이라는 클래스를 만들면 모든 학생들이 공통적으로 가지는 특징들을 클래스에 정의할 수 있다. 하지만 그것은 실체(객체)가 아니다. 객체화(인스턴스화, 실체화)를 해야지만 실체(객체)가 되는 것이다. 학생이라는 클래스 형식으로 형준, 진환, .. 2016. 11. 11.
인라인 함수(Inline function) 컴파일러가 함수를 호출할 때 함수가 정의된 부분으로 찾아가서 보고 다시 원래 위치로 돌아오는데 이 시간을 줄이기 위해서 함수 정의 부분의 코드를 호출된 프로그램코드에 그대로 복사가 되어져서 왔다 갔다 하는 이동시간을 줄이는 기법- 함수 앞에 inline이라고 쓰기만 하면 됨- 빠르게는 40%정도의 속도 효율이 있을 수 있다.- .h파일 안에서 정의가 되어야만 인라인화 할 수 있다. 기억하자.- 근데 컴파일러가 인라인화를 거부하는 경우도 생김(가상함수의 경우 inline을 써도 문제없이 돌아가지만 인라인화가 되지 않음)- 컴파일러가 알아서 인라인화 하는 경우도 있다.근데 전부 인라인을 쓰게 되면 프로그램 코드가 길어지기 때문에 정의는 짧고 자주 호출 되는 경우에 인라인 함수를 쓰는 것이 가장 좋다. 코드가.. 2016. 11. 11.