본문 바로가기

Game DevTip/C++6

6. C++ string 타입에 대해서 1. String 타입string은 문자열의 모음이라고 할수 있다.#include using std::string;가변길이 문자열이며, 해당 string타입을 사용하려면이렇게 string 헤더를 사용하여야 한다.(참고로 string은 std::string에 정의 되어 있다.)string s1; // string의 기본 초기화. s1은 빈문자열이다.string s2 = s1; //s2는 s1의 복사본이다.string s3 = "hiya"; //s3는 문자열의 복사본이다.string s4(10,'c'); //s4는 cccccccccc(c가 10개)라는 뜻.위에 코드 마다 주석에 달린 내용으로 사용법을 대략 알수 있겠지만,보다시피 초기화를 하는 방법이 두 가지이다.1-1. string의 직접초기화.. 2024. 12. 5.
5. C++ auto & decltype에 대해서. 1. auto 타입 지정자auto는 컴파일러에서 초기값으로 타입을 추론하고 타입을 결정짓는 타입이다.즉, 쉽게 이야기 하자면 해당 객체의 타입을 컴파일러가 알아서 결정해줌.-> 때문에 무조건 auto 같은 경우에는 선언 시에 초기값이 있어야 한다.auto item = val1 + val2; //item은 val1 + val2을 이용해 타입을 추론해 초기화.만약 item 변수를 함수가 호출해서 사용할 때 호출값이 double형(소수점)이면, auto는 double로,int형(정수)라면 int형으로 초기화 시킨다.다만 여기에는 약간의 제약이 있는데...auto i = 0, *p = &i; //i는 int, p는 int에 대한 포인터로 추론될 예정이다.auto s2 = 0, pi = 3.14; //err.. 2024. 12. 5.
4. C++ Typedef(타입 별칭)에 대해서 1. 타입 별칭이란?다른 타입과 동의어인 이름 -> 복잡한 정의를 더 간단하게 바꿔줌.자료형을 다른 이름으로 재정의 한다고 생각하면 된다.* 전통적인 typedef 별칭 선언typedef double wages; // wages는 double과 동일어.typedef wages base, *p // base는 double, p는 double*이다. 위에 코드 예시를 보면 첫번쨰 줄에서는 동의어를 선언,아래는 위에 만든 동의어를 이용해서 다시한번 동의어를 만들며포인터를 만드는 방식으로 응용을 한 것이다. 즉, typedef로 동의어를 선언할 때 typedef가 맨 앞에,그 뒤에 타입(int, double, char등등..) 마지막으로 동의어 이름을 지정하면 된다. 어떻게 보면 typedef 키워드는 선언.. 2024. 12. 5.
3. C++ constexpr에 대해서 1. constexpr과 상수표현식constexpr란?어떤식이 상수식 이라고 명시해주는 키워드 이다.컴파일중 값을 평가하는 기능을 가지고 있다.기본적으로 해당 변수가 상수인지 아닌지에 대해서 검사한다.상수 예시)const int max_files = 20; // max_files는 상수표현식이다.const int limit = max_files + 1; // limit는 상수표현식이다.int staff_size = 27; // 상수표현식이 아님.const int sz = get_size(); // 상수표현식이 아님.기본적으로 다들 알다시피, const 키워드가 앞에 들어간 객체들이 상수라고 알겠지만,여기서 말하는 상수는 숫자(1,2,3,4...등) 또는 숫자가 초기값으로 들어있는 변수를 뜻.. 2024. 12. 5.
2. C++ const에 대하여 계속해서 저번 포스트에 이어서 이번에는 const에 대해서 다뤄보겠다.나름대로 포인터와 참조자 쪽에서 중요한 요점들이 약간씩 있기 때문에그 부분들은 약간씩 강조해 보겠다.1. const에 대한 참조자참조자를 const 타입 객체에 결합이 가능하다.즉, const 변수에 대한 참조자라는 뜻.const int ci = 1024; //올바른 사용.const int &r1 = ci; //올바른 사용.r1 = 42; //error : r1이 const이므로 수정불가.int &r2 = ci; //error : const 변수를 참조시 참조자도 const여야 함.위에를 보듯, 무조건 const 참조자는 어떤 const의 대한 참조자이다.즉, const 변수를 참조하기 위해서는 무조건 그 변수를 참조하는 .. 2024. 12. 5.
1. C++ 변수사용 Tip에 대해서. 기존에 C++ primer 관련해서 변수 관련해서는 따로 정리하지 않겠다고 이야기 했지만,결국에는 정리하게 되었다.꽤나 나 자신이 모르거나 헷갈려하던 내용이 많던 이유가 그 중 하나이다.1. extern 변수extern 변수는 기본적으로 선언만 하고 초기값을 넣지 않은 변수이다.extern double j; //j를 선언하지만 초기화를 하지 않음.int i = 10; //i를 선언하고서 상수(숫자)로 초기화.때문에 이는 .cpp파일이 아닌, .hpp파일에서 사용하면더 유용하게 사용이 가능하다.참고로 extern으로 정의한 변수에 초기값을 지정할 수 있다.extern double pi = 3.1416 //pi를 선언하면서 정의.이렇게 할 경우엔 extern를 컴파일러가 무시한다.(결국에 위쪽의 in.. 2024. 12. 5.