当前位置: 首页 > news >正文

哪个网站做木材批发的广州网站优化步骤

哪个网站做木材批发的,广州网站优化步骤,做网站域名备案需要多久,制作公司网页什么价位目录 1.数组类 2.运算符重载 2.1加号运算符 2.1.1成员函数实现 2.1.2全局函数实现 2.1.3加号重载 2.2左移运算符 2.3递增运算符 2.4指针运算符 2.5赋值运算符 1.数组类 //默认构造函数 MyArray::MyArray() {m_Size 0;m_Capacity 100;pAddress new int[m_Capacity]…

目录

1.数组类

2.运算符重载

2.1加号运算符

2.1.1成员函数实现

2.1.2全局函数实现

2.1.3加号重载

2.2左移运算符

2.3递增运算符

2.4指针运算符

2.5赋值运算符


1.数组类

//默认构造函数
MyArray::MyArray()
{m_Size = 0;m_Capacity = 100;pAddress = new int[m_Capacity];
}//析构函数
MyArray::~MyArray()
{if (nullptr != pAddress){delete[] pAddress;pAddress = nullptr;}}//有参构造
MyArray::MyArray(int capacity)
{m_Size = 0;m_Capacity = capacity;pAddress = new int[m_Capacity];
}//拷贝构造
MyArray::MyArray(const MyArray& arr)
{m_Size = arr.m_Size;m_Capacity = arr.m_Capacity;pAddress = new int[arr.m_Capacity];for (int i = 0; i < arr.m_Size; i++){pAddress[i] = arr.pAddress[i];}
}//根据位置设置数据
void MyArray::setData(int pos, int data)
{pAddress[pos] = data;
}//获取数据
int MyArray::getData(int pos)
{return pAddress[pos];
}//尾插
void MyArray::pushBack(int data)
{if (m_Size > m_Capacity){return;}pAddress[m_Size] = data;m_Size++;
}//获取容量
int MyArray::getCapacity()
{return m_Capacity;
}//获取大小
int MyArray::getSize()
{return m_Size;
}

2.运算符重载

给运算符新的含义,可以实现不同数据类型的运算。

  • 运算符需要两个参数时,局部实现只传一个参数,全局实现传两个参数;
  • 运算符需要一个参数时,局部实现不传参数,全局实现传一个参数。

2.1加号运算符

例如,此时p1+p2编译器不知道如何运算,需要我们自定义

2.1.1成员函数实现

 

2.1.2全局函数实现

2.1.3加号重载

只要将函数名改成operator+即可。

2.2左移运算符

cout << 10;
cout << p1;

输出一个自定义对象时,编译器懵了,此时需要重载左移运算符。

ostream& operator<<(ostream& cout, Person& p)
{cout << p.m_A << p.m_B;return cout;
}

cout返回的还是cout对象,因此,返回值类型是ostream&。

2.3递增运算符

//前置递增
cout << ++myInter;后置递增
cout << myInter++;

对一个对象进行自增操作,编译器懵了,此时需要重载递增运算符。

//前置递增
MyInter& operator++()
{m_Num++;return *this;
}//后置递增
int operator++(int)
{int temp=m_Num;m_Num++;return temp;
}
  • 前置递增返回值的类型是引用后置递增返回值的类型是int
  • 后置递增添加一个int做占位参数,来区分前置和后置。

2.4指针运算符

//sp释放时,会自动释放Person
smartPoint sp(new Person(18));

智能指针smartPoint本质上是一个类,可以托管new出的对象,使其自动释放。

但此时,sp本质是个对象,无法像指针一样操作Person的成员,所以需要重载“->”和“*”。

Person* m_Person;Person* operator->()
{return m_Person;
}Person& operator*()
{return *m_Person;
}

2.5赋值运算符

有属性指向堆区,并用到赋值运算时,需要重载赋值运算。因为默认的赋值行为是值拷贝的。

class Person
{
public:Person(char* name, int age){m_Name = new char[strlen(name) + 1];strcpy(m_Name, name);m_Age = age;}//赋值运算符的重载Person& operator=(const Person& p){m_Age = p.m_Age;if (nullptr != m_Name){delete m_Name;m_Name = nullptr;}m_Name = new char[strlen(p.m_Name) + 1];strcpy(m_Name, p.m_Name);}char* m_Name;int m_Age;
};

http://www.dinnco.com/news/84709.html

相关文章:

  • 看企业网站怎么做到百度秒收企业文化是什么
  • 用网站做数据库吗大数据查询平台
  • 网站搭建好了不用会不会被攻击seo推广话术
  • 优秀网站建设平台济南做网站建设的公司
  • 网站关键词堆砌今日搜索排行榜
  • 网站模板如何编辑软件关键词seo服务
  • 做网站需要搭建服务器么免费推广网站排名
  • 注册网站有什么风险吗全国疫情最新名单
  • 在线做简单的网站吗seo收录查询
  • 一级a做爰片免费网站无毒软文广告是什么
  • 百度推广培训班优化推广网站推荐
  • 响应式网站 英语邵阳做网站的公司
  • 网站建设规划需要考虑百度指数怎么查
  • 重庆做网站公司贴吧广告软文怎么写
  • 做网站赚大钱市场调研怎么写
  • jsp动态网站开发 pdf百度权重等级
  • 东莞做网站网络公司线上广告推广平台
  • 做网站和做游戏哪个难网站制作企业有哪些
  • 做企业网站进行推广要多少钱品牌如何推广
  • 郑州品牌设计公司排行seo网站推广优化论文
  • 威海建设集团官方网站百度导航最新版本
  • 做网站一年百万人民网疫情最新消息
  • 网站模块名称百度app下载安装官方免费版
  • 北京做网站的公司排名如何创建自己的域名
  • 承接网站开发 app开发广告推广怎么做最有效
  • 镇江电子商务网站建设武汉最新今天的消息
  • 网站备案点不进去云南网络推广
  • 日本做暧小视频在线观看网站网站备案
  • 政府网站规划优化推广网站怎么做
  • 做面包网站安徽网站推广优化