2015-01-24 3 views
0

다음 코드가 작동하는 이유를 알고 싶습니다! bitset 템플릿 클래스에 따르면 비트 집합 (int 또는 이진 표현을 문자열로)에 값을 지정할 수 있지만 그 이후에는 생성자가 지정할 수 없습니다. 그러나 여기서 정수의 명시 적 할당이 잘 작동하는 것을 볼 수 있습니다.Bitset에 값을 지정하십시오.

#include <iostream> 
#include <bitset> 
#include <string> 
using namespace std; 

int main() 
{ 
    bitset<8> b(string("101")); 
    cout << b.to_ullong()<<"\n"; 
    b= 145; 
    cout << b<<"\n"; 
    return 0; 
} 

이 질문은 어느 항목이 적합 할지도 모른다. How to assign bitset value from a string after initializaion

답변

3

비 세트의 non-string constructors are implicit. 그들은 명시 적으로 선언 된 경우

당신은 실제로 당신은 145 위의 생성자 것을 의미

b = bitset<8>(145); 
+0

를 작성해야? 여기에 = 연산자가 오버로드되어 있어야하고 이것은 생성자 호출이 아니어야한다고 생각합니다. 하지만 참조 용으로 과부하가 표시되지 않습니다. – Sami1202

+0

@ Sami1202 아니요. 나는 145가 비트셋 <8>으로 자동 변환된다는 것을 의미했습니다. 그것은 대입 연산자와 아무런 관련이 없습니다. – Axalo

관련 문제