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

深圳市宝安区网站建设求个网站或者app

深圳市宝安区网站建设,求个网站或者app,wordpress大学主题安装,营销型网站建设营销型目录 前言 一 this指针 二 对象数组 三 类作用域 总结 前言 接着上一篇继续 一 this指针 我们可能看到这个this指针是不知道干什么的,但是我们可以通过一个问题来引入这个,就比如我们上一章的程序,我们知道是用来计算股票的&#xf…

目录

前言

一  this指针

 二  对象数组

三  类作用域

总结


前言

接着上一篇继续


一  this指针

我们可能看到这个this指针是不知道干什么的,但是我们可以通过一个问题来引入这个,就比如我们上一章的程序,我们知道是用来计算股票的,那么我如果要比较两个股票的总值最大要怎么比较呢?我们下面来分析一下

我们首先需要一个方法来比较这两个数值的大小
所以我们就要在类里面设置一个方法来比较大小
首先我们要有一个这个函数原型

const Stock& topval(const Stock& s) const;

这个就是我们用来计算总和的函数原型,我们来分析一下
首先我们这个函数用出来之后,是隐式了是用调用这个函数的那个对象里面的私有值,就是谁调用了这个函数就使用了那个私有值这个是隐式访问但是我们传过来的对象是显式访问,为什么呢?因为它传过来我们就可以使用对应得私有值

然后这个末尾得const有什么等等会奖

当我们去编写这个函数的时候

const Stock& Stock::topval(const Stock& s) const {if (total_vale < s.total_vale)return s;else}

 我们会发现我们可以去饭返回对应的对象,但是好像不可以返回自己,这个要怎么办,因为自身式隐式的,所以这个时候就引入了this指针,这个this指针就是用来指向你所调用那个对象的,这个时候这个指针式指向地址,所以我们只要对它进行解引用就好了,这个this指针是你构造这个类的时候就会有,不用自己去编写

就是这样子

const Stock& Stock::topval(const Stock& s) const {if (total_vale < s.total_vale)return s;else*this;
}

所以这个this指针是用来返回自己的

博主当时阅读书籍的时候在想,为什么这个我只要把这个对象传进去就可以访问这个对象的private里面的数据呢?这个不是相互独立的吗?

在C++中,如果您有一个对象 obj1 的成员函数,并且该函数需要访问另一个对象 obj2 的私有数据,您可以通过将 obj2 作为参数传递给 obj1 的成员函数来实现这一点

这里的关键点是:

  1. 成员函数的访问权限:类的成员函数可以访问该类的所有成员,包括私有成员。这是由类的封装性决定的,成员函数是类定义的一部分,因此它们有权访问类的所有内部数据

  2. 参数传递:当您将 obj2 作为参数传递给 obj1 的成员函数时,该成员函数可以访问 obj2 的所有公共、保护和私有成员。这是因为参数 obj2 在函数内部被视为其所属类的实例,因此函数可以像访问任何其他实例一样访问其成员

这就很TM神奇你知道吧

所以这个this指针是用来进行对象与对象之间的联系的

 二  对象数组

我们直接通过程序来理解这个对象数组是最好的

#include<iostream>
#include"cool.h"//表示公司首次购买股票
Stock::Stock(const std::string& co, long n, double pr) {company = co;if (n < 0) {std::cout << "Number of shares can't be negative;"<< company << "shares set to 0.\n";shares = 0;}else {shares = n;share_vale = pr;set_tol();}
}Stock::~Stock() {std::cout << "bey bey" << company <<std::endl;
}//增加股票
void Stock::buy(long num, double price) {if (num < 0) {std::cout << "Number of shares can't be negative;"<< "Transaction is aborted.\n";}else {shares += num;share_vale = price;set_tol();}
}//减少股票
void Stock::sell(long num, double price) {using std::cout;if (num < 0) {std::cout << "Number of shares can't be negative;"<< "Transaction is aborted.\n";}else if (num > shares) {cout << "You can't sell more than you have!"<< "Transaction is aborted.\n";}else {shares -= num;share_vale = price;set_tol();}
}//更新
void Stock::update(double price) {share_vale = price;set_tol();
}//展示
void Stock::show() const {std::cout << "compay: " << company << " "<< "shares:" << shares << '\n'<< " share price: $" << share_vale<< " total worth: $" << total_vale << '\n';
}const Stock& Stock::topval(const Stock& s) const {if (total_vale < s.total_vale)return s;elsereturn *this;
}
#include<iostream>
#include"cool.h"
using namespace std;int main() {Stock a[5]{Stock("cat",10,19.19),Stock("dog", 7, 17.13),Stock("bear", 9, 11.13),Stock("cow", 6, 10.19),};for(int i = 0; i < 4;i++) {a[i].show();cout << endl;}const Stock* top = &a[0];for (int i = 1;i < 4;i++) {top = &a->topval(a[i]);}top->show();/*return 0;*/int cc = 10;if (cc > 11)cout << a;
}

这个就是我们设置对象数组,然后进行比较

三  类作用域

在类中定义的名称(如类数据成员名和类成员函数名)的作用域都为整个类,作用域为整个类的名称只在该类中是己知的,在类外是不可知的。因此,可以在不同类中使用相同的类成员名而不 会引起冲突,类作用域意味着 不能从外部直接访问类的成员,公有成员函数也是如此。 也就是说,要调用公有成员函数,必须通 过对象

我们在定义方法的时候,在前面一定要写上这个类的名字和::这个作用域运算符,才可以算是写了这个类里面的成员函数

然后我们在调用这个类里面的成员函数是需要进行运用.,->,::这里三个运算符号的

当我们在使用类的时候,我们假设类里面要用到一个常量,如果每次都是开辟一个的话,那是不是太浪费内存了,能不能让这个常量变成公有的,这样不就可以节省内存吗?

首先我么最先想到的就是这个方案,但是这个方案其实是行不通的
因为声明类只是描述了对象的形式,并没有创建对象,也就是说这个值是存放在这个对象里面的。因此,在创建对象前,将没有用于存储值的空间(实际上, C++11提供了成员初始化, 但不适用于前述数组声明)这个会在后面进行讲解

所以我们有两个方法
1  运用枚举

这个枚举的意思就是说我么在编译的时候就已经吧这个month替换为了12,所以不存在上面这个问题

2  运用static关键词

这个是把这个变量放到只读数据段里面,并不是放在对象里面,那么就不会产生错误


总结

剩下的抽象数据在我的数据结构里面有,这里就不讲了

现在我们学习了this指针,对象数组和类的作用域和常量该怎么处理

http://www.dtcms.com/a/563595.html

相关文章:

  • 网站外链建设布局手机上怎么做链接
  • 影院网站如何做宁波正规站内优化seo
  • 色轮配色网站网络营销方案的制定思路
  • 有关大数据的网站及网址宁波的网络营销服务公司
  • 美声广告网站建设厚街响应式网站设计
  • 如何建立网站教程做游戏直播什么游戏视频网站好
  • 街区网站建设的意义功能型网站
  • 枣庄企业网站建设山东省建设监理协会网站6
  • 南昌网站开发模板上高做网站公司
  • 网网站开发企业免费建站网站
  • 合肥高新城建设计院网站如何建设钓鱼网站
  • 五星花园网站建设兼职比较好用的免费素材网
  • 西安建网站网站推广WordPress中文版如何下载
  • 广州市做民宿什么网站比较好wordpress倒序阅读
  • 长沙网站维护公司盐山县网站建设
  • 怎么在wordpress中套用同行网页关键词首页排名优化
  • 写网站教程租空间开网站
  • 深圳模板开发建站企业品牌网站有哪些
  • 网站建设与维护本科教材wordpress商务插件
  • 海外直邮购物网站一般使用的分辨率的显示密度是多少
  • 网站开发 案例阿里巴巴运营培训课程
  • 网站备案全国合作拍照点 腾讯云wordpress文章生成html代码
  • 1号网站建设 高端网站建设wordpress4.0.1
  • 如何建设百度网站专门做ppt的网站名称
  • 做房地产咨询网站怎么赢利wordpress 织梦
  • w3c网站开发成都好玩的地方排行榜
  • 做静态网站需要什么毕业设计做企业门户网站
  • 苏州教育平台网站建设宁波网站建设优化的公司排名
  • 通信公司网站建设聚焦婚纱摄影
  • 重庆网站建设策划wordpress 做大型网站吗