-4

クラス コンストラクターで文字列を作成していて、それを に格納したいと考えてい*thisます。コンストラクター内の次のコードは機能しません。

// Inside the class constructor
string str1 = "hello";
*this = str1;

の代わりに他のデータ型を使用する必要がありstring str1ますか? 助言がありますか?

4

2 に答える 2

1

あなたのクラス定義を見るのはいいことですが、それが存在しないことを考えると、ロングショットを行い、何が問題なのかを推測してみましょう.

クラスを宣言すると、最初は空です。コンストラクターには何も格納できません。

class Empty {
   Empty() { /* can't do much here */ }
}

クラスはメンバー フィールドで構成され、それらはデータを格納できます。あなたがやりたいことは次のようなものです:

class String {
    std::string member;
    String() {
        std::string str1 = "hello";
        member = str1;
    }
}
于 2012-11-30T23:05:53.793 に答える
0

*thisそれはあなたのクラスオブジェクトのインスタンスです。

*this= str1;あなたのクラスがそうでない限り、あなたはできませんでしたstd::string

于 2012-11-30T23:01:03.547 に答える