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

网站广告动态图怎么做2017如何免费制作网站

网站广告动态图怎么做,2017如何免费制作网站,开发游戏用什么软件,有没有帮忙做网站前言:前面我们说到类和对象是一个十分漫长的荆棘地,今天我们将走到终点,也就是说我们对于C算是正式的入门了。 💖 博主CSDN主页:卫卫卫的个人主页 💞 👉 专栏分类:高质量C学习 &…

前言:前面我们说到类和对象是一个十分漫长的荆棘地,今天我们将走到终点,也就是说我们对于C++算是正式的入门了。

💖 博主CSDN主页:卫卫卫的个人主页 💞
👉 专栏分类:高质量C++学习 👈
💯代码仓库:卫卫周大胖的学习日记💫
💪关注博主和博主一起学习!一起努力!
在这里插入图片描述


目录标题

  • 类和对象
    • 友元
    • 内部类
      • 通过外部类使用内部类
      • 内部类是外部类的友元
      • 外部类无法直接访问内部类的成员
    • 匿名对象


类和对象

友元

友元是 C++ 中的一个特殊声明,允许一个类或函数访问另一个类的私有成员或受保护成员。友元的声明可以在类中出现,也可以在类外出现。

  • 友元关系是单向的,不具有交换性。
  • 友元关系不能传递如果C是B的友元, B是A的友元,则不能说明C时A的友元。
  • 友元关系不能继承,在继承位置再给大家详细介绍。

友元函数: 友元函数是在类外部声明的函数,它可以直接访问类的私有成员或受保护成员。在类中声明一个函数为友元函数,需要使用 friend 关键字。
友元类: 友元类是在一个类中声明的另一个类,被声明为友元类的类可以访问该类的私有成员或受保护成员。在类中声明一个类为友元类,需要使用 friend 关键字

class A {
private:int x;
public:friend class B; // 声明类 B 是类 A 的友元friend void func(); // 声明函数 func 是类 A 的友元A(int n = 10){x = n;}
};class B {
public:void printA(A obj) {cout <<"友元类访问私有成员:" << obj.x << endl; // 类 B 可以访问类 A 的私有成员 x}
};void func() {A obj(1);cout <<"func函数访问的私有成员: " << obj.x << endl; // 函数 func 可以访问类 A 的私有成员 x
}int main()
{A obj(5);func();//友元函数可以访问类中的私有成员B obj1;obj1.printA(obj);//类 B 可以访问类 A 的私有成员 xreturn 0;
}

在这里插入图片描述
友元关系是单向的,即如果类 A 是类 B 的友元,不代表类 B 是类 A 的友元,需要分别进行声明。

注意,过度使用友元会破坏封装性,并增加代码的复杂性和耦合性,因此在使用友元时应慎重考虑。


内部类

概念:如果一个类定义在另一个类的内部,这个内部类就叫做内部类。内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越的访问权限。
注意:内部类就是外部类的友元类,参见友元类的定义,内部类可以通过外部类的对象参数来访问外部类中的所有成员。但是外部类不是内部类的友元。

通过外部类使用内部类

在下面的示例中,Inner是一个内部类,Outer是一个外部类.
实例演示:

class Outer
{
public :Outer(int s = 1, int q = 1):m(s),n(q){}void Print(){cout << "你好我是外部类 : " << m << " " << n << endl;}class Inner{public:Inner(int n = 1, int m = 1):x(n),y(m){}void Print(){cout << "你好我是内部类 : " << x << " " << y << endl;}private :int x;int y;};
private :int m;int n;
};int main()
{Outer outobj(9, 22);Outer::Inner inobj(10,20);//外部使用内部类inobj.Print();outobj.Print();return 0;
}

在这里插入图片描述


内部类是外部类的友元

实例演示
在这里插入图片描述

外部类无法直接访问内部类的成员

实例演示:
在这里插入图片描述


总结
C++中的内部类指的是在一个类的内部定义的类。内部类具有以下特点:

  1. 内部类是一个嵌套在外部类中的类,它们之间可以互相访问彼此的成员。

  2. 内部类可以访问外部类的所有成员,包括私有成员。

  3. 内部类的对象可以在外部类的成员函数中直接创建。

  4. 内部类的作用域被限定在外部类中,外部类的成员函数可以访问内部类,但外部类的对象不能直接访问内部类。

  5. 内部类可以使用外部类的成员作为自己的成员,从而实现更灵活的设计和封装。

  6. 内部类可以被声明为私有,这样只有外部类的成员函数可以访问它。

  7. 内部类的声明可以在外部类的定义之外,但定义必须在外部类的定义之内。

  8. . sizeof(外部类)=外部类,和内部类没有任何关系。


匿名对象

C++中的匿名对象是指没有被命名的对象,它们在创建后可以直接使用,但无法通过变量名来引用。匿名对象通常用于简单的一次性操作或者作为函数的参数。
匿名对象的特点如下

  1. 匿名对象在创建后立即执行相关操作,并在表达式结束后被销毁
  2. 匿名对象无法被引用,因此无法在其他地方被使用。
  3. 匿名对象适用于一些临时的、不需要保留状态的操作,如简单的计算或调用函数。
    实例演示1
class Myclass
{
public:Myclass(int year = 2024, int month = 1, int day = 1):_year(year),_month(month),_day(day){}void Print(){cout << "year: " << _year << " month: " << _month << " day: " << _day << endl;}
private:int _year;int _month;int _day;
};
int main()
{Myclass(2024, 2, 16).Print();//调用匿名对象Myclass A = 2023;//这里会产生隐式转换A.Print();Myclass B;调用一次构造函数B.Print();B = Myclass(2003, 9, 22);//此处等价于赋值,且这个匿名对象会调用一次给构造函数B.Print();return 0;
}

在这里插入图片描述


匿名对象在以下情况下会调用拷贝构造、默认构造和析构函数

如果生成的匿名对象在外部有对象等待被其实例化,此匿名对象的生命周期就变成了外部对象的生命周期;如果生成的匿名对象在外面没有对象等待被其实例化,此匿名对象将会生成之后,立马被析构。
好啦,今天的内容就到这里啦,下期内容预告类和对象(五)友元、内部类、匿名对象等,下期就会对类和对象进行最后的收尾了,各位加油呐!


好啦,今天的内容就到这里啦,下期内容预告C/C++内存管理,类和对象就在这里和大家告一段落了,各位加油呐!


结语:今天的内容就到这里吧,谢谢各位的观看,如果有讲的不好的地方也请各位多多指出,作者每一条评论都会读的,谢谢各位。


🌏🗺️ 这里祝各位新年快乐 💞💞
http://www.yayakq.cn/news/293428/

相关文章:

  • 做js题目的网站绵阳建设局网站皱劲松
  • 深圳定制网站制作报价企业网站公告怎么做
  • 网站备案 公司注销有没有教做韩餐的网站
  • wordpress 做大型网站吗网页游戏排行榜前十名超清画面
  • 网站后台 刷新海外 网站 推广
  • 团购网站短信平台广告策划活动公司
  • 广州市手机网站建设服务机构大连今年大项目建设
  • 南宁网站建设制作短视频推广渠道
  • 深圳 网站开发可以做c oj的网站
  • 漳州城乡和建设局网站如何为网站做seo体检
  • 网站推广软文代发淄博网站设计
  • elision豪华级创意企业中文wordpress主题整站修改wordpress浏览器小图标
  • 购物网站建设工作流程网站建设好与管理在哪就业
  • 高端网站设计合肥网站建设wordpress 教程网
  • 做网站苏州小规模网站开发税率
  • 海口企业做网站设计更改网站文章上传时间
  • 坡头网站开发公司商业网站源码
  • 一个网站完整的html代码商旅通官网app
  • 想调用等三方网站数据该怎么做深圳 网站科技
  • 南京广告设计制作公司seo外链查询工具
  • 公司网站网址注册和备案哪里找当前网站开发什么语言
  • 威海建设公司网站甘肃省省经合局网站建设的通知
  • python购物网站开发流程权威发布的意思是什么
  • 网站建设业务员话术合肥网站建设公司
  • 如何创建网站内容企业网站的功能列表
  • 集美网站建设网络公司经营范围可以加婚介吗
  • 做什么网站开发好服务周到的上海网站建设公
  • 做网站如何寻找客源婚纱影楼网站
  • 扁平化配色方案网站扬州做网站多少钱
  • 网站建设研究课题怎么开网站详细步骤