전체 글 (352) 썸네일형 리스트형 [C++] 컴파일 에러(Compile error)와 런타임 에러(Runtime error) 컴파일 에러(Compile error)는 보통 문법적인 오류로 인해 발생한다. 런타임 에러(Runtime error)는 실행 파일을 만든 후, 실행시킬 때 발생한다. 주로 잘못된 메모리 사용 등의 메모리 문제 또는 연결 List와 관련이 있다. (2019.12.16. 월요일 추가) 런타임 에러는 'warning'이 발생하여도 컴파일이 가능하다. [C++] extern extern은 다른 소스 파일에 선언된 전역 변수 또는 함수를 참조할 때 사용된다. extern을 사용함으로써 다른 파일에 해당 변수 및 함수가 선언되어 있다는 정보를 컴파일러에게 알려준다. 그리고 함수 선언에는 extern이 'default' 되어 있기 때문에 extern의 생략이 가능하다. 보통 소스 파일(.cpp)에 전역 변수를 선언한 다음, 헤더 파일(.h)에서 해당 변수를 extern 하고 다른 파일에 include 하여 사용한다. extern.h // extern.h // "extern.cpp"에 선언된 전역변수 'externTest'를 참조한다. // 따라서 "extern.h"를 include 하는 .cpp 파일은 모두 'externTest' 변수를 참조할 수 있다. extern int ex.. [C++] strncpy() strncpy는 문자열을 복사해주는 함수이다. strcpy와는 다르게 복사할 문자열의 크기를 지정할 수 있다. 함수를 사용하기 위해서는 "cstring" 또는 "string.h" 헤더 파일을 포함시켜주면 된다. char* strncpy(char* destination, cost char* source, size_t num) destination은 복사된 문자열을 저장할 변수이고, source는 복사해 줄 문자열 변수이다. 그리고 num은 복사할 문자열의 크기를 가리킨다. 이때, 지정한 num의 크기보다 작은 문자열을 복사하게 되면 나머지 공간에 '\0(널문자)'가 삽입된다. [C++] 오버로딩 (Overloading) 및 오버라이딩 (Overriding) 오버로딩과 오버라이딩은 C++에서만 지원한다. C에서는 지원하지 않는다. 오버로딩(overloading)은 메소드의 이름은 같으나, 매개변수가 다른 경우를 말한다. 즉, 메소드의 매개변수 개수, 타입 등을 달리하여 같은 이름의 메소드를 여러 개 정의할 수 있다. #include using namespace std; // 매개변수가 없는 overloading() 함수 정의 void overloading(){ cout [C++] malloc()-free() 와 new-delete malloc()과 new는 모두 동적 메모리 할당을 위해 사용된다. malloc()은 C 라이브러리에서 제공하는 함수로 "stdlib.h" 헤더 파일을 포함시켜주어야 한다. new는 cpp에서 제공하는 연산자이다. 또한 new로 메모리를 할당할 경우 생성자가 호출된다. [C++] 정적 할당(Static Allocation) 및 동적 할당(Dynamic Allocation) 메모리 할당이란 임의의 메모리 공간을 제공하여 사용할 수 있도록 해준다. '정적 메모리 할당'과 '동적 메모리 할당'으로 구분할 수 있다. 정적 할당(Static Allocation)은 프로그램에서 고정적으로 지정되는 메모리 부분으로, 프로그램이 실행될 때 해당 메모리의 크기가 결정된다. 선언함과 동시에 메모리 크기가 결정되며, 프로그램 중간에 그 크기를 변경할 수 없다. 또한 프로그램이 종료되면 자동으로 소멸된다. 보통 변수 선언 등이 포함된다. 동적 할당(Dynamic Allocation)은 프로그램 실행 중간에 허용 범위 내에서 메모리 공간을 자유롭게 지정할 수 있다. 원하는 만큼 메모리 크기를 할당받을 수 있으며, 프로그램 중간에 크기 변경도 가능하다. 하지만 할당받은 공간을 다 사용하거나, 프로.. [C++] 클래스 상속 (Class Inheritance) 상속은 새로 정의된 클래스가 기존 클래스의 멤버 변수 및 함수(method)를 이용할 수 있게 해 준다. 즉, 클래스를 상속하여 다른 클래스에서 해당 클래스의 재사용을 가능하게 해 준다. 이때 상속해주는 기존 클래스를 상위 클래스 또는 부모 클래스라고 부르며, 기존 클래스로부터 상속을 받는 새롭게 정의된 클래스를 하위 클래스 또는 자식 클래스라고 부른다. #include /****** superClass ******/ class Aircraft {// 상위 클래스(상속 해주는 클래스) private: bool isTakeOff; double battery; public: void takeOff(); void land(); void print(); void chargeBattery(double); }; /.. [C++] 오버플로우 (Overflow) 타입의 자료형에 따라 표현할 수 있는 범위를 넘어가면 overflow 또는 underflow 가 발생한다. 예를 들어, '(signed) short (int)' 타입의 자료형은 '-32768 ~ 32767'까지의 정수를 표현할 수 있다. 하지만 이때 short s = 32767; 로 변수를 선언하여 초기화시켜주고 +1을 해주면, overflow가 발생하여 s = 32768이 아닌 s = -32768 라는 값을 가지게 된다. #include #include int main(int argc, char **argv){ using namespace std; cout 이전 1 ··· 41 42 43 44 다음