프로그래밍 공부

2024/01/12 10

카테고리 설명
  • 2.1.3 C++ string 클래스 C++는 표준 라이버리를 통해 훨씬 진보된 문자열을 제공한다. C++의 std;:string 클래스는 에서 제공하는 문자열 처리 기능을 대부분 지원하면서, 제대로만 사용한다면 메모리 할당 부분까지 대신 관리해준다. string 클래스는 헤더 파일에 정의되어 있다. C스타일 문자열의 문제점 C++ strnig의 필요성을 이해하려면, C스타일 문자열의 장점과 단점을 알아야 한다. 장점 단순하다. 기본문자 타입과 배열구조만 사용한다. 가볍가. 제대로 사용하면 꼭 필요한 메모리 공간만 점유한다. 저수준이다. 로우 메모리상에서 쉽게 조작하거나 복제할 수 있다. C 프로그래머에게 매우 익숙하다. 단점 범용 문자열 데이터 타입이므로 고급 작업을 하기에는 너무 많은 노력이 추가로 ..

  • 2.1.2 문자열 리터럴 C++ 프로그램에서는 (사실 거의 모든 프로그램) 따옴표로 둘러싼 문자열을 흔히 볼 수 있다. 예를들어 문자열 hello를 출력한다고 했을 때 cout

  • 문자열은 프로그램을 작성할 때 거의 항상 사용한다. C언어는 문자열 표현을 위해 null로 종결되는 단순한 ASC2 문자열을 사용할 수 밖에 없다. 그런데 단순한 문자 배열로 문자열을 표현하면, 버퍼 오버플로 같은 보안 위험 등 여러가지 문제가 발생한다. C++ STL은 더 안전하고 사용하기 쉬운 std::string 클래스를 제공하여, C스타일 문자열의 단점을 피할 수 있다. 2.1 동적 문자열 프로그래밍 언어에서 문자열은 최 우선순위로 지원되는 기능이다. 자유자재로 바꾸는 크기는 물론, 부분추출, 추출하여 바꾸기 등의 여럭 고급 기능을 지원한다. 하지만, C에서의 문자열 지원은 상당히 부실한데, 단순히 문자의 배열만 존재하고, 편리하게 사용할 수 있는 문자열 데이터 타입이 따로 존재하지 않는다. 문자..

  • BP를 사용해서 CubeObject를 생성하기. BP를 사용해서 Cube를 생성해보자. 좌측의 엑터창을 사용해서 Cube를 생성해도 무방하지만, 일단 우리는 블루프린트를 적용 가능한 엑터를 생성하는것 이 목표이기 때문에, 블루프린트를 이용해서 Cube를 만들 것 이다. 블루프린트 클래스를 생성한다. 만들어야 하는것 은 엑터 임으로, 엑터로 생성한다. 컴포넌트 추가 에서 Cube를 생성한다. 생성하게 되면, 지정된 구 대신 Cube가 생성된다. 중앙에 있는 구체는 엑터가 생성되면 해당 위치에 생성된다고 알려주는 것 임으로, 무시해도 무방하다. 어차피 컴포넌트가 추가되면 볼 일이 없다. 같은 느낌으로 TextRender또한 생성해서 Cube에 드래그 하여 상속시켜준다. 위와같이 텍스트를 배치하면 성공. 텍스..

  • C++에서 다형성을 지원하기 위한 메커니즘 중 하나로, 가상함수들의 주소를 담고있는 테이블이다. 가상함수 테이블의 역할 다형성을 지원하기 위해 가상함수의 주소를 저장한다. 함수의 주소를 저장한다는 점에서 함수테이블과 동작방식이 비슷하다. 객체의 실제 타입에 따라 올바른 함수를 호출하는 데 사용한다. 우선, 가상함수 테이블에 대해 더 자세히 알려면, 가상함수부터 알아야 한다. 가상함수 virtual 키워드가 붙은 멤버 함수로, 파생클레이스에서 재정의할 수 있다. 가상함수를 선언하는 순간. 해당 클래스는 가상 함수 테이블을 가질 가능성이 생긴다. 만약, 완전가상인 =0 또는 null선언을 해주면 무조건 가상 함수 테이블을 가진다. 가상함수 테이블 클래스에 가상 함수가 하나라도 존재한다면, 해당 클래스의 객체..

  • C++에서 런탕미에 객체의 타입 정보를 확인하는 메커니즘을 말한다. RTTI는 C++의 다형성(polymorphism)을 활용하고 객체의 동적인 특성을 다룰 때 유용하게 사용된다. 사용예시 객체의 실제 타입을 런타임때 확인하는데 사용된다. 다형성을 지원하며, 가상 함수와 함께 사용하여 동적 바인딩 기능을 가능케 한다. typeid 연산자를 사용하여 객체타입의 정보를 얻을 수 있다. typeid typeid 연산자는 객체의 타입정보를 반환한다. #include // 객체 또는 포인터에 대해 typeid 연산자 사용 const std::type_info& typeInfo = typeid(obj); 사용 부분 dynamic_cast dynamic_cast는 RTTI와 함께 사용되며, 안전한 다운캐스팅을 지원한..