草庐IT

【C++】类和对象(中)

🚀作者简介:一名在后端领域学习,并渴望能够学有所成的追梦人。🚁个人主页:不良🔥系列专栏:🚁C++ 🛸剑指Offer 📕学习格言:博观而约取,厚积而薄发🌹欢迎进来的小伙伴,如果小伙伴们在学习的过程中,发现有需要纠正的地方,烦请指正,希望能够与诸君一同成长!🌹类的6个默认成员函数在C语言中,我们在某些特定情况下需要进行初始化和销毁操作,但是有的时候会因为自己的疏忽造成程序出现错误,出现内存泄漏等问题。在C++中可以通过编译器自动调用默认成员函数自动进行初始化和销毁空间。如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数

C++学习之路(C++初阶)——类和对象(上)

✨✨欢迎来到T_X_Parallel的博客!!      🛰️博客主页:T_X_Parallel      🛰️专栏:C++初阶      🛰️欢迎关注:👍点赞🙌收藏✍️留言      🛰️友友们的支持是本博主更新的动力文章目录前言✨学习类和对象前的补充知识🐾C++输入与输出🐾缺省参数🐾函数重载🐾引用🐾内联函数🐾auto(C++11)🐾基于范围的for循环(C++11)🐾指针空值--nullptr(C++11)✨类和对象(上)🐾面向过程和面向对象初步认识🐾类的引入🐾类的定义🐾类的访问限定符及封装🐾类的作用域🐾类的实例化🐾类的对象大小的计算前言  本博客主要为学习C++类和对象内容做准备,开头补

C++入门:初识类和对象

C++入门:类和对象1本节目录C++入门:类和对象11.auto关键字(C++11)1.1类型别名思考1.2auto简介typeid运算符:获取类型信息1.3auto的使用细则1.4auto不能推到的场景2.基于范围的for循环(C++11)2.1范围for的语法2.2范围for的使用条件3.指针控制nullptr(C++11)3.1C++98中的指针空值4.面向过程和面向对象初步认识5.类的引入6.类的定义7.类的访问限定符及封装7.1访问限定符7.2封装8.类的作用域9.类的实例化10.this指针10.1this指针的定义10.2this指针的特性11.C语言和C++实现Stack的对比

C++类和对象终章——友元函数 | 友元类 | 内部类 | 匿名对象 | 关于拷贝对象时一些编译器优化

文章目录💐专栏导读💐文章导读🌷友元🌺概念🌺友元函数🍁友元函数的重要性质🌺友元类🍁友元类的重要性质🌷内部类(不常用)🌺内部类的性质🌷匿名对象🌷关于拷贝对象时一些编译器优化💐专栏导读🌸作者简介:花想云,在读本科生一枚,致力于C/C++、Linux学习。🌸本文收录于C++系列,本专栏主要内容为C++初阶、C++进阶、STL详解等,专为大学生打造全套C++学习教程,持续更新!🌸相关专栏推荐:C语言初阶系列、C语言进阶系列、数据结构与算法💐文章导读本文为类和对象终章,我们将学习友元的概念,包含友元函数和友元类;内部类;匿名对象以及关于拷贝构造时一些编译器优化的情况等。🌷友元面向对象有三大特性——封装、继

C++类和对象终章——友元函数 | 友元类 | 内部类 | 匿名对象 | 关于拷贝对象时一些编译器优化

文章目录💐专栏导读💐文章导读🌷友元🌺概念🌺友元函数🍁友元函数的重要性质🌺友元类🍁友元类的重要性质🌷内部类(不常用)🌺内部类的性质🌷匿名对象🌷关于拷贝对象时一些编译器优化💐专栏导读🌸作者简介:花想云,在读本科生一枚,致力于C/C++、Linux学习。🌸本文收录于C++系列,本专栏主要内容为C++初阶、C++进阶、STL详解等,专为大学生打造全套C++学习教程,持续更新!🌸相关专栏推荐:C语言初阶系列、C语言进阶系列、数据结构与算法💐文章导读本文为类和对象终章,我们将学习友元的概念,包含友元函数和友元类;内部类;匿名对象以及关于拷贝构造时一些编译器优化的情况等。🌷友元面向对象有三大特性——封装、继

【C++】类和对象(下)

个人主页:平行线也会相交💪欢迎点赞👍收藏✨留言✉加关注💓本文由平行线也会相交原创收录于专栏【C++之路】💌本专栏旨在记录C++的学习路线,望对大家有所帮助🙇‍希望我们一起努力、成长,共同进步。🍓目录一、再谈构造函数1.1初始化列表1.2初始化列表能够完全取代函数体赋值二、static成员设计一个类,只能在栈或者堆上创建对象三、友元友元函数友元类四、内部类五、匿名对象5.1匿名对象的使用场景5.2匿名对象具有常属性一、再谈构造函数先来回顾一下什么是构造函数:在创造对象是,编译器通过调用构造函数,给对象中的各个成员变量进行一个合适的初始化赋值。(说白了就是给对象进行初始化的意思)我们首先要清楚的是

Python:类和内存中的函数

如果我有一个具有多个功能的类:classExample:deffunc1(self):print'Hi1'deffunc2(self):print'Hi2'deffunc3(self):print'Hi3'如果我创建多个“示例”实例,每个实例是否都在类中存储自己的函数副本?或者Python是否有一种聪明的方法来只存储一次定义并在每次实例使用类中的函数时查找它?另外,静态函数呢?类是否只保留每个静态函数的一份副本? 最佳答案 实例化一个类时,不会创建新的函数对象,无论是实例方法还是静态方法。当通过obj.func1访问实例方法时,会创

Python:类和内存中的函数

如果我有一个具有多个功能的类:classExample:deffunc1(self):print'Hi1'deffunc2(self):print'Hi2'deffunc3(self):print'Hi3'如果我创建多个“示例”实例,每个实例是否都在类中存储自己的函数副本?或者Python是否有一种聪明的方法来只存储一次定义并在每次实例使用类中的函数时查找它?另外,静态函数呢?类是否只保留每个静态函数的一份副本? 最佳答案 实例化一个类时,不会创建新的函数对象,无论是实例方法还是静态方法。当通过obj.func1访问实例方法时,会创

【C++】异常+智能指针+特殊类和类型转换

上天可能觉得我太孤独,派你来和我一起对抗虚无。文章目录一、异常1.传统处理错误的方式vs异常2.异常的使用规则2.1异常的抛出和捕获原则2.2在函数调用链中异常栈展开匹配原则3.异常安全和异常规范4.自定义异常体系5.标准库的异常体系和异常的优缺点二、智能指针1.为什么需要智能指针?2.智能指针的使用和原理2.1auto_ptr2.2unique_ptr2.3shared_ptr2.3.1拷贝和赋值(在堆上创建引用计数)2.3.2线程安全(和引用计数一样,在堆上申请一把锁)2.3.3循环引用(weak_ptr,可以指向,但不参与资源的管理)2.3.4定制删除器(其实就是可调用对象)3.C++1

learn C++ NO.6——类和对象(4)

1.再谈构造函数1.1.构造函数体赋值在创建类的对象时,编译器回去调用类的构造函数,来各个成员变量一个合适的值。classDate{public:Date(intyear,intmonth,intday){_year=year;_month=month;_day=day;}private:int_year;int_month;int_day;};虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化,构造函数体中的语句只能将其称为赋初值,而不能称作初始化。因为初始化只能初始化一次,而构造函数体内可以多次赋值。1.2.初始化列表类的构造函数可以使用初始化列表