응답하지 않습니다변환 연산자 (할당 연산자 =) 내 구조체에 대한 = 할당 연산자를 호출을 테스트하기 위해 노력했습니다
map<int, string> var;
array arr = var;
:
struct array{
void* data;
template<typename S, typename T>
array& operator= (const map<S, T>& that){ cout << "worked..."; return *this;}
private:
array(); //i don't need this
};
와 나는이 같은 테스트는-몰았다
나는 오류가 발생 :
Error: conversion from
'std::map<int, string, std::less<int>, std::allocator<std::pair<const int, string> > >'
to non-scalar type 'array' requested*/
질문 : 문제가 무엇인지 정확하게 ? 어떻게 이러한 연산자를 오버로드합니까? 다른 유형의 객체를 자체 클래스 유형으로 변환해야하는 operator=
을 의미합니다.
자바 스크립트 코드 조각과 같이 ++ 코드 블록을 C 레이블을하지 마십시오 - 그들은 정말 브라우저에서 실행할 수 없습니다 ... [의 –
가능한 중복 왜의 찬성이 경우에 호출 된 할당 연산자 복사 생성자?] (http://stackoverflow.com/questions/14637805/why-is-the-assignment-operator-not-called-in-this-case-in-favor-of-the-copy-cons) – TobiMcNamobi