본문 바로가기

C++

(2)
[C++] 견고한 프로그래밍의 기법 assert()함수 assert()함수는 보통 함수 안에서 인자를 받았을 때 그 인자의 값이 정상적으로 들어왔는지 일차적으로 검사하는 역할을 한다. 이것으로 예기치 않은 값이 들어 왔을 때 오류를 띄워서 오류를 확인할 수 있으므로 보다 더 견고한 프로그래밍을 할 수 있다. assert()함수를 많이 사용할 수록 견고하고 완벽한 프로그래밍을 할 수 있다고 하니 많이 사용하도록 하자~ 사용하려면 #include - c++ #include - c 라이브러리를 인클루드 해야한다. 사용법은 function (int a) { assert( a > 0); ... } 와 같이 간단한 형식으로 사용할 수 있다. 만약 assert()안의 구문이 거짓이면 오류를 띄운다.
[C++] 짜증나는 링크애러!! 이렇게 해결했다.(LNK2001: unresolved external symbol ) LNK2001: unresolved external symbol "public: void __thiscall bag::insert(unsigned int const &)" (?insert@bag@@QAEXABI@Z) 이 애러.. 대책없다 소스를 아무리 뒤져봐도 답이 나오지 않는다; 하지만 이 애러가 생기는 규칙적인 상황이 있었으니, 바로 클래스를 헤더파일(.h)과 cpp파일로 나누어서 담았을 때이다. 소스 어디에도 문제가 없어 보였다. 한시간 동안 고민하던 끝에 헤더파일에 소스의 모든 내용을 담아버렸다. 그리고 .cpp파일을 없애버렸다. 구조상 헤더파일과 cpp파일로 나누는 것이 맞지만, 이유를 알 수 없는 링크 애러를 한방에 날려 버릴 수 있는 좋은 해결책이다. 하지만 다른 애러가 발생할 수도 있다는거..