我希望StringClass类重载>>二元运算符如下:
StringClass teststring;
teststring = "test";
printf("%s", teststring >> 5);
并且会有 testtesttesttesttest 印刷(五次。)
答案 0 :(得分:0)
为什么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;
}
答案 1 :(得分:0)
满足您的需求。我劝阻这件事,但现在就是。
是的,糟糕的静态变量。糟糕的做法。谁在乎。
#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的初始代码结构。