次のように >> 二項演算子をオーバーロードした StringClass クラスが必要です。
StringClass teststring;
teststring = "test";
printf("%s", teststring >> 5);
testtesttesttesttest が出力されます (5 回)。
次のように >> 二項演算子をオーバーロードした StringClass クラスが必要です。
StringClass teststring;
teststring = "test";
printf("%s", teststring >> 5);
testtesttesttesttest が出力されます (5 回)。
printf
を使用する理由
私はこれを考えることができます:-
void operator >> (const std::string &str,const int n)
{
for(int i=1;i<=n;i++)
cout<<str;
}
int main()
{
std::string str="TEST";
str>>5;
}
あなたのニーズに。私はこれを思いとどまらせますが、ここにあります。
そして、ええ、悪い静的変数です。悪い習慣。誰も気にしない。
#include <string>
#include <cstdio>
using namespace std ;
const char* operator >> (const string &str, const int n) {
static string ret_string ;
ret_string.clear() ;
for (int i=0 ; i<n ; i++) {
ret_string += str ;
}
return ret_string.c_str() ;
}
int main() {
string str="test" ;
printf("%s", str>>5) ;
return 0 ;
}
ご覧のとおり、>>
演算子を定義して、必要なものを返すだけです。静的変数に関する警告、リエントラントなし、何とか、何とか、何とか:)希望が役立ちます。
必要に応じて、演算子の定義をクラス内に囲むことができます (クラス用でない場合string
)。
** 初期コード構造について P0W に感謝します。