応答していません。変換演算子(代入演算子=)私は、構造体のために=代入演算子の呼び出しをテストしようとしてきた
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++コードブロックをJavascriptコードスニペットとしてラベル付けしないでください。実際にはブラウザでは実行できません。 –
[なぜこのケースでは代入演算子が呼び出されないコピーコンストラクタ?](http://stackoverflow.com/questions/14637805/why-is-the-assignment-operator-not-called-in-this-case-in-favor-of-the-copy-cons) – TobiMcNamobi