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

联合年检在什么网站做国内代理ip地址

联合年检在什么网站做,国内代理ip地址,wordpress数学插件,我的网站百度找不到文章目录 前言一、this指针1.1、this指针的引出1.2、 this指针的特性 二、类的默认的六个构造函数2.1、构造函数简述2.2构造函数 三、析构函数3.1、析构函数引出3.2、特点#xff1a; 四、拷贝构造4.1、引入4.2、特征#xff1a;4.3、默认拷贝构造函数 总结 前言 在本节中 四、拷贝构造4.1、引入4.2、特征4.3、默认拷贝构造函数 总结 前言 在本节中我将给大家介绍我们在学习C中经常要用到的this指针、类的六个默认成员函数、运算符重载等相关知识. 下面我会结合一个简单的类----日期类来介绍 后面需要时会补充相应的成员函数 class Date { public:void Display()//打印类对象中的内容{cout _year - _month - _day endl;}void SetDate(int year, int month, int day){_year year;_month month;_day day;} private:int _year; // 年int _month; // 月int _day; // 日 };一、this指针 1.1、this指针的引出 int main(){Date d1, d2;d1.SetDate(2024,5,1);d2.SetDate(2024,6,1);d1.Display();d2.Display();return 0;}当执行上述代码时它的输出结果为 下面的汇编不了解的可以搜一下栈帧的创建和销毁对今后的学习帮助很大 通过汇编我们可以看到两次调用的SetDat函数地址相同调用同一函数 对于上述类有这样的一个问题 Date类中有SetDate与Display两个成员函数函数体中没有关于不同对象的区分那当d1调用SetDate函数时该函数是如何知道应该设置s1对象而不是设置d2对象呢 C中通过引入this指针解决该问题即C编译器给每个“非静态的成员函数“增加了一个隐藏的指针参数让该指针指向当前对象(函数运行时调用该函数的对象)在函数体中所有成员变量的操作都是通过该指针去访问。只不过所有的操作对用户是透明的即用户不需要来传递编译器自动完成。 1.2、 this指针的特性 this指针只能在“成员函数”的内部使用this指针本质上其实是一个成员函数的形参是对象调用成员函数时将对象地址作为实参传递给this形参。this指针是成员函数第一个隐含的指针形参不需要用户 传递. 将调用成员函数展开 下面我们来证明一下this指针本质上就是对象的地址 为了更清晰的展示我会简化用不到的代码 class Date { public:void Print_this(){cout this endl;//打印this指针} private:int _year; // 年int _month; // 月int _day; // 日 }; int main() {Date d1, d2;d1.Print_this();//cout d1 endl;//如果和我们说的一样那么打印结果应该两两相同d2.Print_this();cout d2 endl;return 0; } 结果 可以看到this本质就是对象的地址。这就是隐藏的this指针当然我们可以像学习C语言时知道一个结构体对象的地址使用“-”来进行成员变量的访问 class Date{public:void Display(){cout this- _year - this- _month - this-_day endl;}private:int _year; // 年int _month; // 月int _day; // 日};二、类的默认的六个构造函数 恩师莫怪 2.1、构造函数简述 如果一个类中什么成员都没有简称为空类。空类中什么都没有吗并不是的任何一个类在我们不写的情况下编译器都会自动生成6个默认成员函数。这些函数叫做构造函数。构造函数的任务是初始化类对象的数据成员无论何时只要类的对象被创建就会执行构造函数。 构造函数特点: 1.构造函数的名字和类名相同。 2.和其他函数不一样的是构造函数没有返回类型。 3.类似于其他的函数构造函数也有一个(可能为空的)参数列表和一个(可能为空的)函数体。 4.构造函数不能被声明成const 的。 需要特别注意的是一个类可以拥有多个参数不同的构造函数这些构造函数之间向普通函数之间一样可以构成函数重载 2.2构造函数 再贴一遍方便大家看 class Date { public:void Display()//打印类对象中的内容{cout _year - _month - _day endl;}void SetDate(int year, int month, int day){_year year;_month month;_day day;} private:int _year; // 年int _month; // 月int _day; // 日 };对于Date类可以通过SetDate公有的方法给对象设置内容但是如果每次创建对象都调用该方法设置信息未免有点麻烦那能否在对象创建时就将信息设置进去呢我们上面说过创建类的类型对象时由编译器自动调构造函数保证每个数据成员都有 一个合适的初始值并且在对象的生命周期内只调用一次。 class Date { public:// 1.无参构造函数Date(){}// 2.带参构造函数Date(int year, int month, int day)//无返回值{_year year;_month month;_day day;} private:int _year;int _month;int _day; }; void TestDate() {Date d1; // 调用无参构造函数Date d2(2024, 6, 1); // 调用带参的构造函数用于初始化// 注意如果通过无参构造函数创建对象时对象后面不用跟括号否则就成了函数声明// 以下代码的函数声明了d3函数该函数无参返回一个日期类型的对象Date d3(); 如果类中没有显式定义构造函数则C编译器会自动生成一个无参的默认构造函数一旦用户显式定义编译器将不再生成。 1.证明编译器默认生成的为无参的构造函数: 可以看到我将自己写的构造函数屏蔽后调用有参的构造函数是无法成功的无参的并没有报错这也说明编译器默认生成的为无参的构造函数。 2.证明当我们显示写出一个构造函数编译器就不会在生成默认的构造函数 我将带参的构造函数显示定义d1无法调用无参的默认构造函数。 无参的构造函数和全缺省的构造函数都称为默认构造函数并且这两个默认构造函数不能同时存在。注意无参构造函数、全缺省构造函数、我们没写编译器默认生成的构造函数都可以认为是默认成员函数. 默认构造函数我们一般是为了处理自定义类型的成员变量 三、析构函数 3.1、析构函数引出 前面通过构造函数的学习我们知道一个对象时怎么来的那一个对象又是怎么没呢的 析构函数与构造函数功能相反析构函数不是完成对象的销毁局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数完成类的一些资源清理工作(比如类中定义的指针指向的空间的清理) 3.2、特点 析构函数名是在类名前加上字符 ’~‘。无参数无返回值。一个类有且只有一个析构函数。若未显式定义系统会自动生成默认的析构函数。对象生命周期结束时C编译系统系统自动调用析构函数 ![class Date { public:~Date(){_year 0;_month 0;_day 0;} Date(int year, int month, int day){_year year;_month month;_day day;}int _year;int _month;int _day; }; int main() {Date d2(2024, 6, 1);return 0; } 反汇编视角: 在上面的代码中我并没有去显示调用析构函数但是在程序执行结束时编译器自动调用了析构函数。 这个也可以像构造函数一样测试大家尝试一下 四、拷贝构造 4.1、引入 拷贝构造函数是构造函数的一种重载形式它可以用来创建一个与已存在的对象一模一样的新对象。对于拷贝构造它只有单个形参且该形参必须是对本类类型对象的引用因为要引用所以要加const修饰。 4.2、特征 1.拷贝构造函数的参数若使用传值方式编译器直接报错 因为会引发无穷递归调用。 2.若未显式定义编译器会生成默认的拷贝构造函数。 默认的拷贝构造函数,对对象按 字节序完成拷贝这种拷贝叫做浅拷贝或者值拷贝。 3.编译器生成的默认拷贝构造函数已经可以完成字节序的值拷贝了。 class Date { public:Date(int year 1900, int month 1, int day 1)//全缺省{_year year;_month month;_day day;}// Date(const Date d) // 错误--引发无穷递归Date(const Date d) // 正确写法_year d._year;_month d._month;_day d._day;} private:int _year;int _month;int _day; }; int main() {Date d1;Date d2(d1);//也可以写成Date d2d1return 0; }4.3、默认拷贝构造函数 像上面介绍的默认成员函数一样当我们没有在类中写拷贝构造函数时编译器会自动生成一个默认的拷贝构造。 系统生成的拷贝构造也会针对成员变量的内置类型和自定义类型做一个区分。对于内置类型的成员变量编译器会按照被拷贝对象的内存存储字节序完成拷贝就好比被拷贝的对象有3个int类型成员变量占12字节内存编译器会根据该对象的内存和成员初始值拷贝给新对象。 总结 本次我们介绍了this指针、构造函数、析构函数、拷贝构造、等一些与类紧密关联的知识。 要将他们详细的介绍所用篇幅过长后续会出拓展版的
http://www.hkea.cn/news/14445389/

相关文章:

  • 上海找人做网站wordpress实现彩色标签云
  • 网站有死链怎么办wordpress作品集主题
  • 如何做企业网站优化网站seo优化免
  • 广东网站建设公司报价表佛山厂家推广优化
  • 怎么把危险网站苏宁网站建设
  • 江苏城乡和住房建设厅网站网络推广营销课程
  • 连云港网站建设的公司网站建设制作服务
  • 织梦发布网站谈谈如何建设企业人力资源网站
  • 社保服务个人网站华北建设招标网官方网站
  • 水果网站模板可信网站是否必须做
  • 拒绝做网站的理由杭州知名设计公司排名
  • 网站建设到上线做网站的如何找客户
  • 青岛建网站公司360推广 网站建设
  • 比较好的网页模板网站亚马逊网站入口
  • 莆田市城厢区建设局网站电商网站开发分析
  • 哪些网站做代理商做电影网站怎么盈利
  • 荣成做网站杭州网络公司排名
  • 苏州网站制作及推广免费户型图设计软件
  • 本地网站搭建工具建设工程平台网站
  • 快递网站策划怎么做ppt中国建设招标信息网站
  • 电影订票网站怎么做环境建设公司网站
  • 眉山网站建设公司什么是c2c平台
  • 电子商务网站有哪些?黄页88网是什么性质的网站
  • 乒乓球网站建设目标科技布
  • 网站建设和技术支持阿里巴巴推广平台
  • 保定哪家做网站好平面设计师工资一般多少钱一个月
  • 和平网站建设免费主题大全软件下载
  • 网站做app企业推广方式
  • 灌南建设局网站北京平台网站建设找哪家
  • 总公司网站备案后 分公司网站还需要备案吗网站制作公司业务发展方案