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

公安网计算机可以作为网站开发吗小程序开发公司排行榜

公安网计算机可以作为网站开发吗,小程序开发公司排行榜,微信小商店坑死人,东莞网站优化多少钱创建一个矩形的类(Rectangle),为保持Rectangle对象较小,可以只在其对象中保存一个指针,用于指向辅助的结构体,定义其范围的点数据存放在辅助的结构体中: class Point { // 表示点的类 public:P…

 创建一个矩形的类(Rectangle),为保持Rectangle对象较小,可以只在其对象中保存一个指针,用于指向辅助的结构体,定义其范围的点数据存放在辅助的结构体中:

class Point { // 表示点的类
public:Point(int x, int y);...void setX(int newVal);void setY(int newVal);...
};
struct RectData { // 矩形的点数据Point ulhc; // ulhc = " upper left-hand corner"Point lrhc; // lrhc = " lower right-hand corner"
};
class Rectangle {...Point& upperLeft() const { return pData->ulhc; }Point& lowerRight() const { return pData->lrhc; }
private:std::shared_ptr<RectData> pData; 
}; Point coord1(0, 0);
Point coord2(100, 100);
const Rectangle rec(coord1, coord2); // Rec是一个const矩形,范围从//(0,0)到(100,100)
rec.upperLeft().setX(50); // 现在变为 (50, 0) 到 (100, 100)!

 这个设计可以编译,但它是错误的。我们设计的类返回的是一个const修饰的对象,但是我们还是可以修改内部对象的值。
我们可以为函数的返回类型添加const限制来解决这个问题:

class Rectangle {
public:...const Point& upperLeft() const { return pData->ulhc; }const Point& lowerRight() const { return pData->lrhc; }...
};

 即便如此,upperLeft和lowerRight仍然会返回对象内部的句柄,这在其他方面可能会造成问题。特别是,它可能导致悬空(dangling )句柄:指向不再存在的对象的句柄。

#include <iostream>
#include <string>
class Point { // 表示点的类
public:Point() {};Point(int x, int y) :_x{x},_y{y}{}void setX(int newVal) {_x = newVal;}void setY(int newVal) {_y = newVal;}std::string toString() const {std::string result = "(x:" + std::to_string(_x) + "," + std::to_string(_y) + ")";return result;}
private:int _x = 0;int _y = 0;
};
struct RectData { // 矩形的点数据Point ulhc; // ulhc = " upper left-hand corner"Point lrhc; // lrhc = " lower right-hand corner"
};
class Rectangle {
public:Rectangle(){}Rectangle(const Point& p1, const Point& p2) {RectData rectData;rectData.ulhc = p1;rectData.lrhc = p2;pData = std::make_shared<RectData>(rectData);}~Rectangle(){std::cout << "Rectangle析构函数执行" << std::endl;}const Point& upperLeft() const { return pData->ulhc; }const Point& lowerRight() const { return pData->lrhc; }void print() const{std::cout<<pData->ulhc.toString()<<std::endl;std::cout << pData->lrhc.toString() << std::endl;}
private:std::shared_ptr<RectData> pData;
};Rectangle boudingBox()
{Point coord1(0, 0);Point coord2(100, 100);Rectangle rect(coord1, coord2);return rect;
}int main()
{//Point coord1(0, 0);//Point coord2(100, 100);//const Rectangle rec(coord1, coord2);	//rec.print();//Point right = rec.lowerRight();//std::cout << "+++++++" << right.toString() << std::endl;rec.upperLeft().setX(50); //rec.print();const Point *right = &(boudingBox().lowerRight());std::cout << "+++++++" << right->toString() << std::endl;return 0;
}

在这里插入图片描述
 避免返回指向对象内部的句柄(引用、指针或迭代器)。遵守这个原则将会增加了封装性,帮助const成员函数保持const行为,并可以尽量避免发生悬空句柄的创建。

http://www.ritt.cn/news/28464.html

相关文章:

  • wordpress新注册用户不发送邮件qq关键词排名优化
  • 怎么把自己做的网站上传到网上小红书新媒体营销案例分析
  • 做外贸生意在哪个网站百度推广客服工作怎么样
  • 学网络推广哪个培训机构好详细描述如何进行搜索引擎的优化
  • 做商城网站那个好荥阳seo
  • html5教育网站泉州百度搜索推广
  • 网站被k 多久恢复网络营销活动策划方案
  • 企业网站的标题关键词我是站长网
  • 日本哪里有免费的高速wifi搜索引擎优化的英语简称
  • dw不会写代码能建立网站吗网络上如何推广网站
  • 设计一款软件需要多少钱关键词优化排名哪家好
  • 设计类的软件有哪些免费seo
  • 用php做注册网站的代码长沙网站seo优化排名
  • 国外网站后缀app推广多少钱一单
  • 国务院建设行政网站百度业务范围
  • 网站被黑后怎么补救免费建网站平台
  • 网站可做哪些服务营销渠道模式有哪些
  • 个人网站源码php广东seo教程
  • 有什么网站可以免费广州疫情今天最新消息
  • 第三方编辑网站怎么做2021最火关键词
  • 初学者学做网站怎么学seo辅助工具
  • 如何做公司简介介绍seo职位要求
  • 在哪里做网站比较好线上广告投放方式
  • 官方网站制作思路网络营销职业规划300字
  • 卦神岭做网站广告网络推广
  • 海南网站建设报价方案上海app定制开发公司
  • 游戏软件开发定制百度seo费用
  • 做海报的素材哪个网站seo 工具推荐
  • 网站登录验证码是怎么做的恶意点击竞价是用的什么软件
  • 学校网站建设评审会议通知长春网络推广公司哪个好