オペレータのオーバーロードについて学習し始めたばかりで、コードの使い方を学習するだけでした。だから、私は2つの文字を追加するコードを書いた。例: '#' + '%' = 'H'(ASCII値が追加されたため)ここで'+'演算子がC++でオーバーロードされる
は私のコードです:
#include <iostream>
using namespace std;
class Strings {
//everything is public
public:
char str;
//empty constructor
Strings();
Strings(char);
//operator takes in an object of Strings
Strings operator+(Strings);
};
Strings::Strings()
{}
//constructor
Strings::Strings(char a) {
str = a;
}
//aso is "another string object"
//makes new empty object "brandNew"
//brandNew is the two characters added together
//returns object brandNew
Strings Strings::operator+(Strings aso) {
Strings brandNew;
brandNew.str = str + aso.str;
return brandNew;
}
int main() {
Strings a('#');
Strings b('%');
Strings c;
//now, we can use + operator to add characters
c = a + b;
cout << c.str << endl;
return 0;
}
私は2つの文字列を追加したい場合はどう?私は、入力
Strings a("###");
Strings b("%%%");
を作ると私は出力が
HHH
どのように私は2つの文字列を追加するために自分のコードを変更しますか?になりたい場合は私はの文字の型宣言のすべてをの文字列に変更することから始めました。私は、両方の入力の各文字を反復するために、演算子関数の中でforループを作成しなければならないと考えています。しかし、私はそれの構文について混乱し、その実装方法も混乱しています。どんな助けや説明もありがとう!
ゼロ終了文字配列にcharを割り当てます。あなたはchar * strを持っているはずです。インスタント、または文字列[MAX_SIZE]。 –
どのように文字列を追加しますか?あなたの入力は文字列であり、1文字を追加する必要がありますか? 'Strings'は一つのデータメンバーしか持っていません。それは' char'です。それを 'string'に変更すると、この追加はどこに保存されますか?投稿する前に考えてください。 – anukul
私は上記の質問を編集しました。出力を文字列 "HHH"にしたい – ss1111