クラス コンストラクターで文字列を作成していて、それを に格納したいと考えてい*this
ます。コンストラクター内の次のコードは機能しません。
// Inside the class constructor
string str1 = "hello";
*this = str1;
の代わりに他のデータ型を使用する必要がありstring str1
ますか? 助言がありますか?
あなたのクラス定義を見るのはいいことですが、それが存在しないことを考えると、ロングショットを行い、何が問題なのかを推測してみましょう.
クラスを宣言すると、最初は空です。コンストラクターには何も格納できません。
class Empty {
Empty() { /* can't do much here */ }
}
クラスはメンバー フィールドで構成され、それらはデータを格納できます。あなたがやりたいことは次のようなものです:
class String {
std::string member;
String() {
std::string str1 = "hello";
member = str1;
}
}
*this
それはあなたのクラスオブジェクトのインスタンスです。
*this= str1;
あなたのクラスがそうでない限り、あなたはできませんでしたstd::string