演算子のオーバーロードではおそらく不可能なことをしようとしています。私は特に、右側の値として別のデータ型の値を受け取る代入演算子のオーバーロードに興味があります。次のようになります。
MyClass myclass = "hello world"; <--- Wrong?
MyClass myclass2;
Myclass myclass = myclass2; <--- Right?
次に、MyClass
オブジェクトは文字列を受け取り、それを処理する必要があります。残念ながら、私が読んだことによると、同じデータ型の値をカスタムメイドのクラスに割り当てることしかできません。それは本当ですか、それとも私が間違っていましたか?
これは私が現在持っているコードです:
class MyClass {
public:
MyClass() {};
virtual ~MyClass();
MyClass& operator = (const MyClass&);
private:
char* string;
};
MyClass& MyClass::operator= (const MyClass& inc){
string = inc;
}
int main(int argc, char** argv) {
MyClass myclass = "hello world";
std::cout << myclass;
}
ご覧のとおりcout
、文字列としてのオブジェクトも必要です。基本的に、カスタム クラスを文字列として扱いたいと考えています。Google および StackOverflow 検索エンジンでの検索で私の希望が拒否されましたが、実際にそうなっているのでしょうか、それとも回避策はありますか?
ご連絡をお待ちしております。事前にご連絡いただきありがとうございます。
編集:ローリーは主な問題を修正しました。cout
しかし、カスタム オブジェクトの文字列値はどうすればよいでしょうMyClass
か。オブジェクト出力は出力されるオブジェクトのメモリアドレスに過ぎないので、それは可能ですか?