※ ChatGPTを利用し、要約された質問です(原文:C++でのstringクラスの内部の挙動)
C++のstringクラスの内部の挙動とは?
このQ&Aのポイント
C++のstringクラスでは、文字列を直感的に代入することができますが、その内部の挙動について疑問があります。
stringクラスでは、=演算子のオーバーロードを使用して、変数宣言と同時に文字列を代入しています。
しかし、自作のクラスでは同じような代入ができないため、stringクラスの実装方法が気になります。
最近C++でクラスを理解し始めて疑問に思ったことなんですが。
string A = "abcdef";
という風に直感的にstringに文字列を代入出来ていたので何の疑問も持たず使っていたんですが、これをどのように実現しているか内部の挙動がよくわかりません。
srtcopyはやり方は面倒臭いですがこっちは単純に関数に値を渡しているだけなので理解出来ます。
内部で=演算子のオーバーロードをしているんじゃないかと思って、=演算子をオーバーロドした自分で作ったクラスでテストしてみたんですが
Testclass A;
A = "abcdef";
は可能ですが、stringの例のように変数宣言と同時に代入する
Testclass A = "abcdef"
としてみると、Testclass型への変換が出来ませんとなって、string型と同じ事が出来ません。
stringクラスの中でどのようにクラス宣言直後の代入をしているか教えてください
補足
やってみたら出来ました コンストラクターによる初期化は TestClass A(変数); のようにしないと出来ないと思っていました・・・ 回答ありがとうございます。