关于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;
}

实在太烂懒得改了

发布了3 篇原创文章 · 获赞 0 · 访问量 144

猜你喜欢

转载自blog.csdn.net/yangkaiandy/article/details/104182044