컴퓨터 용어 정리 76
-
객체지향적 프로그래밍은 4가지 특징이 있다. 때로는 5가지 특징이 있다고 하는데, 캡슐화에서 다른 한가지 특징이 자동적으로 파생되어 나옴으로 4대특징이라 해도 무방하고 5대 특징이라고 해도 무방하다. 객체지향의 4대 특징은 다음과 같다. 추상화 (Abstraction) 어떠한 특성만을 가지고서 재조합 하는것을 뜻한다. 이는 프로그램에서 필요한 부분만 외부에 노출시키고 필요없는 부분을 감춤으로써, 프로그램 내부의 객체 구현방법을 몰라도 사용할 수 있도록 해준다. 그리하여 객체별 프로그래밍이 가능해지고 이는 대규모 프로젝트 에서의 효율적인 작업을 야기한다. 캡슐화 (Encapsulation) [ 여기에서 정보은닉 (Information hiding)이 파생된다. ] 객체의 속성이나 동작들을 클래스로 묶는것을..
-
-
-
C++에서는 가변함수라는 강력한 임의 매개변수를 받을 수 있는 방법을 제공한다. 가변함수는, 매개변수의 숫자가 정해지지 않은 함수 를 의미한다. 이는, 고정적인 매개변수의 숫자가 아닌 전체 매개변수의 숫자를 셈 하여 메모리가 허용하는 한 무한한 매개변수를 받아서 연산할 수 있다는 의미이다. 가변 함수를 사용하기 위해 사용하는 라이브러리는 #include 를 사용하고, va_list 가변인자 목록을 나타내는 타입으로 받아온 모든 매개변수를 배열로 받아와서 처리한다. va_start va_list타입의 변수와 가변인자의 마지막 인자 이전의 인자의 위치값을 받아온다. 그 후 초기화 작업을 진행해준다. va_arg 가변인자 목록에서 값을 가져오는 함수로, va_list 타입의 변수와 가져올 값의 타입을 전달받는..
-
C++에서는 일반적인 함수포인터 선언방식 이외에 다른 함수포인터 선언방식을 지원한다. 사용방법은 다음과 같다. func라는 함수를 선언하였다. 11번째 줄은 함수 포인터 구조체를 사용하여 정의해주는 일반적인 방법이다. 구조체 내부에 함수포인터를 사용할 경우 대부분 이러한 방법을 이용하게 된다. 13번째 줄 또한 functype이라는 별명을 사용하여 함수포인터를 정의해주는 방법이다. 23번째 줄은 functional 라이브러리를 사용하여 함수 포인터를 선언하는 방법이다. functional 라이브러리를 사용하면 다양한 함수나 함수포인터를 객체로 간편하게 변환하거나 함수 객체를 조합하여 더 복잡한 동작을 수행하게 만들 수 있다.
-
C++에서 프로그래밍을 할 때 컴파일때는 오류가 발생하지 않다가. 프로그래밍 자체의 실수로 범위값 설정이 잘못되어 오류가 나타나는 경우가 생겨난다. 이는 코드 자체의 오류점이며, 컴파일 시에 확인되지 않기 때문에 프로그래머가 찾기가 힘든 경우가 매우 많다. 이때 사용하는 함수가 Assert 함수이다. 이는 프로그램이 실행중에 조건을 확인하고, 만일 Assert 함수에 지정된 조건일 경우 프로그램을 터트리고 오류를 출력한다. assert를 사용하기 위해서는, cassert 라이브러리 를 사용해야 한다. 다음은 assert 함수를 사용한 예시 코드이다. assert를 사용하면 특정 조건에 만족 할 경우 오류를 출력한다. 만약, 컴파일 전에 오류가 나도록 하고싶다면, assert를 static 처리해주면 된다..