프로그래밍 공부

C++ 26

카테고리 설명
  • mutable은 C++에서 클래스멤버 변수 중 상수멤버 함수 내에 값이 변경될 수 있는 변수를 나타내는 키워드 이다. mutable  키워드가 멤버 변수 선언 앞에 붙으면, 이 멤버 변수는 const로 선언되어도, 상수 멤버 함수 내에서 변경될 수 있다. 장점const 함수 내에서 변경되는 변수를 표현할 수 있다.멤버 변수의 값을 상수 멤버 함수에서 변경해야 하는 경우. 매우 쉬운 해결책으로 사용할 수 있다.단점mutable을 남용하면 코드의 가독성을 떨어뜨릴 수 있다. 객체의 상태를 변경하는 변수를 나타냄으로, 과도한 사용은 코드를 난잡하게 만들기 때문.다음은 mutalbe을 사용한 예시이다.다음과 같이 선언된것의 , private으로 선언된 부분인 mutable int mutable_variable은..

  • Inline 은 C++에서 선언된 함수가 인라인 함수 임을 컴파일러에 알리는 역할을 한다. inline 키워드가 함수 선언 앞에 붙으면, 컴파일러는 그 함수를 인라인 함수로 취급한다. 컴파일러가 해당 함수를 호출하는 코드를( 일반적으로 함수를 호출할 때 에는 오버헤드가 발생하여 메모리를 끌어다 쓴다 ) 그 함수의 코드 본문으로 대체하도록 한다. 즉, 함수를 호출하는것 이 아니라 애초에 그 함수의 원문이 같이 코드에 삽입되서 돌아가도록 만들어버린다. 장점 함수 호출의 오버헤드가 사라져서 빠른 실행이 가능하다. 함수 호출 대신 코드의 복사가 일어남으로 함수호출로 인한 스택 메모리 사용량도 줄어든다. 일반 함수보다 약간 더 빠른 속도를 보장한다. 단점 코드의 크기가 커지는 단점이 있다 함수를 인라인으로 전환하..

  • Class는 객체지향 프로그래밍(OOP)에서 사용되는 구조체의 한 종류로 Clas는 데이터와 함수를 함꼐 묶어서 사용할 수 있도록 해주며, 객체를 생성하여 사용할 수 있다. Class의 장점 캡슐화(Encapsulation) 데이터와 관련된 함수를 하나로 묶어서 외부에서 함부로 접근하지 못하게 해 데이터의 손상을 방지하고 코드의 동작성을 보장한다. 상속성(Inheritance) 다른 클래스로부터 기존 함수와 데이터를 물려받아 사용할 수 있으며, 코드의 재사용성을 높인다. 다형성(Polymorphism) 같은 이름의 함수를 다양한 방법으로 사용할 수 있다. 유지보수성(Maintainability) Class는 코드의 재사용성과 가독성을 높여 유지보수가 용이하다. Class의 단점 구현의 복잡성 (Imple..

  • C++에서는 함수 오버로딩 을 허용한다. 그러나, 함수 오버로딩을 사용하지 않고도 비슷하게 사용할 수 있는 기능이 있다. 이를 template이라고 한다. 다음은 오버로딩 을 하지 않고도 template를 사용하는 예시이다. C++에서는 오류 검출을 위한 assert를 지원한다. 자세한 설명은 링크를 참조. C++에서는 functional 방식을 지원한다 자세한 설명은 링크를 참조. C++에서는 가변인자 함수 형식을 지원한다. 자세한 설명은 링크를 참조. C++과 C,JAVA등 프로그래밍의 대부분 종류는 POP와 OOP로 구성되어있다. 프로그래밍 패러다임.(Programming Paradigm) 이라고 한다. OOP 프로그래밍은 객체지향적 프로그래밍 이기 때문에 4가지 특징을 가지게 된다. 자세한 설명은..

  • C++에서는 일반적인 함수포인터 선언방식 이외에 다른 함수포인터 선언방식을 지원한다. 사용방법은 다음과 같다. func라는 함수를 선언하였다. 11번째 줄은 함수 포인터 구조체를 사용하여 정의해주는 일반적인 방법이다. 구조체 내부에 함수포인터를 사용할 경우 대부분 이러한 방법을 이용하게 된다. 13번째 줄 또한 functype이라는 별명을 사용하여 함수포인터를 정의해주는 방법이다. 23번째 줄은 functional 라이브러리를 사용하여 함수 포인터를 선언하는 방법이다. functional 라이브러리를 사용하면 다양한 함수나 함수포인터를 객체로 간편하게 변환하거나 함수 객체를 조합하여 더 복잡한 동작을 수행하게 만들 수 있다.

  • C++에서 프로그래밍을 할 때 컴파일때는 오류가 발생하지 않다가. 프로그래밍 자체의 실수로 범위값 설정이 잘못되어 오류가 나타나는 경우가 생겨난다. 이는 코드 자체의 오류점이며, 컴파일 시에 확인되지 않기 때문에 프로그래머가 찾기가 힘든 경우가 매우 많다. 이때 사용하는 함수가 Assert 함수이다. 이는 프로그램이 실행중에 조건을 확인하고, 만일 Assert 함수에 지정된 조건일 경우 프로그램을 터트리고 오류를 출력한다. assert를 사용하기 위해서는, cassert 라이브러리 를 사용해야 한다. 다음은 assert 함수를 사용한 예시 코드이다. assert를 사용하면 특정 조건에 만족 할 경우 오류를 출력한다. 만약, 컴파일 전에 오류가 나도록 하고싶다면, assert를 static 처리해주면 된다..