에 basic_string :이 표준을 할당 :: 문자열
struct Aclass {
typedef std::string TitleType;
TitleType title;
typedef std::size_t NumType;
NumType some_num;
};
을 Aclass
의 인스턴스화 한 후, 이제 aclass
말을하자, 나는 내 프로그램에서 일부 문자열로 aclass.title
을 설정합니다. 다른 기능에서, 나는 다음을 수행 할 :
NumType new_num;
std::string new_string;
new_num = aclass.some_num; // this works, verified by print statement
new_string = aclass.title; // this doesn't work
typeid(aclass.title)
는 예상대로 basic_string
유형을 제공하지만, new_string
에 할당 내 프로그램이 충돌을 일으키는 것입니다. 이 할당을 올바르게 수행하려면 어떻게해야합니까? basic_string
에서 string
으로 전환하려면 전환이 필요합니까?
new는 예약어입니다. A는 객체가 아닌 클래스입니다. – CashCow
두 개체가 모두 유효한 개체 인 한 그렇게하는 방법입니다. 'new_string'은 방금 생성 했으므로 유효합니다. 그러나 우리는'A'에 대해 아무것도 모른다. 어떻게 그걸 만들었고, 그 이후로는 파괴되지 않았다고 확신합니까? 충돌을 증명할 수있는 완전한 예제를 게시 할 수 있습니까? –
'A.title '의 내용이 유효하다는 것을 알고 있습니다. 확인하기 위해'std :: string (A.title)'을 출력 할 수 있습니다. – squareskittles