[완료]volatile 과 CString
글쓴이: tommybee / 작성시간: 목, 2009/01/15 - 5:55오후
안녕하세요
지금 C++로 코딩하다가 궁금한점이 있어서 질문 드립니다
제가
typedef aTag
{
CString name;
}Tag;
volatile Tag ta;
이렇게 하고
CString st;
st = ta.name;
하니까
error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'volatile class CString'
이런에러가 뜨는데요. 어떻게 해야 될지 모르겠습니다.
물론 키워드를 안쓰면 되긴 되는 데 지금 넣었을 때 어떤 변화가 있는 지 관찰 할려고 하거든요
근데 이렇게 쓰지는 못하는 것인지요....연산자가 오버로딩 안된거는 알겠는데 초보라 그다음은 어케할지 감이 안옵니다
답변 주시면 감사 하겠습니다
Forums:
st.Format(_T("%s"),
st.Format(_T("%s"), ta.name);
이런식으로 바꾸니 되는것 같긴 하네요.
근데 정확히 뭐가 어떻게 돌아가는지는 도통...
왜 volatile 이
왜 volatile 이 필요한지 아셔야겠죠.
volatile 이라는 건 이 형으로 선언된 변수값이 언제라도 바뀔수 있기 때문에 그 부분에 대한 최적화를 하지 않기 위해 쓰는 키워드이거든요..
ta 가 여러 쓰레드에서 공유되어 수시로 rewrite 되는 상황이 아니라면..... 별로 필요가.... 없죠.
댓글 달기