关于operator
实在太烂懒得改了
operator的用途
operator是用来重载操作符的 比如说 == != ++ += – -= /= 等等
operator是在类或结构上面用的
operator示例
operator结构
typename operator重载字符串(typename name);
用法
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
class vec
{
private:
int*fp;//数组指针
int len;//长度
public:
friend ostream&operator<<(ostream&out,vec f)//字符串重载输出流
{//输出
for(int i = 0;i < f.len;i ++)
{
out<<f.fp[i]<<' ';
}
return out;
}
friend istream&operator>>(istream&in,vec&f)//字符串重载输入流
{//输入
char ch;
while(ch = getchar()!='\n')
{
int num;
int *fq = new int[++f.len];
ungetc(ch,stdin);
scanf("%d",&num);
//cin>>num;
for(int i = 0;i < f.len-1;i ++)
{
fq[i] = f.fp[i];
}
fq[f.len-1] = num;
free(f.fp);
f.fp = fq;
}
return in;
}
vec&operator=(vec t)//重载赋值字符串
{
//赋值
fp = new int[t.len];
for(int i = 0;i < t.len;i ++)
{
fp[i] = t.fp[i];
}
len = t.len;
return *this;//返回自己
}
vec();//构造函数
~vec();//解析函数
void pushback(int k)//函数pushback
{//插入在最后面
int*fq = new int[++len];
for(int i = 1;i < len;i ++)
{
fq[i-1] = fp[i-1];
}
fq[len-1] = k;
free(fp);
fp = fq;
}
};
vec::vec()
{
fp = NULL;//初始化
len = 0;//长度初始化
}
vec::~vec()
{//释放内存
free(fp);
len = 0;
}
int main(void)
{
vec test;
test.pushback(1);
test.pushback(9);
test.pushback(2);
test.pushback(6);
cout<<test;
return 0;
}
实在太烂懒得改了