首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言)(刷题)

type=blog 专栏:https://blog.csdn.net/2301_79293429/category_12545690.html 题目描述 化而为鸟,其名为。...之背,不知其几千里也。 ——《庄子·逍遥游》 HtBest的小鲲长大变成了大,大在天际翱翔,看到了一片绵延的山脉,每座山都有自己的高度,大想穿过这片山脉。...由于他只能紧贴地面飞行,他想知道他一共要翻越几次大山(上升->平飞->下降,算一次,其中平飞可以没有),初始时,大在山脉的左端。 输入描述: 第一行一个正整数n,表示山脉被分为n段。...输出描述: 一行,包含一个正整数,表示大需要翻越几次大山。 示例1 输入 3 1 2 1 输出 1 说明 大先上升一次,再下降一次,共翻越1次。...示例2 输入 3 3 1 2 输出 0 说明 大先下降一次,再上升一次,共翻越0次。 示例3 输入 3 1 2 3 输出 0 说明 大只需要上升一次,不需要下降,共翻越0次。

8310

C++元函数和元类

C++ 中,一个类中可以有 public、protected、private 三种属性的成员,通过对象可以访问 public 成员,只有本类中的函数可以访问本类的 private 成员。...现在,我们来介绍一种例外情况——元(friend)。 借助元(friend),可以使得其他类中的成员函数以及全局范围内的函数访问当前类的 private 成员。...在 C++ 中,这种友好关系可以用 friend 关键字指明,中文多译为“元”,借助元可以访问与其有好友关系的类中的私有成员。...如果你对“元”这个名词不习惯,可以按原文 friend 理解为朋友。 元函数 在当前类以外定义的、不属于当前类的函数也可以在类中声明,但要在前面加 friend 关键字,这样就构成了元函数。...元函数可以是不属于任何类的非成员函数,也可以是其他类的成员函数。 元函数可以访问当前类中的所有成员,包括 public、protected、private 属性的。

14950
您找到你想要的搜索结果了吗?
是的
没有找到

C++元和元函数

访问权限 我们知道,在C++的类中有私有成员和公有成员,在类外可以访问类的公有成员,但只有同属于一个类的成员函数能够访问私有成员。 但很多时候,一个类外的函数需要动用类内私有成员来完成任务。...元函数 C++可以通过使用关键词friend在一个类内声明一个全局非类内成员函数作为自己的元函数,给予它高度的访问权限,允许这个函数访问自己类内所有成员(包括私有成员)。...还有就是声明另一个类的成员函数是元函数时要加上类名和作用域运算符。 ...C++还可以通过使用关键词friend在一个类内将另一个类声明为自己的元,允许这个类访问自己类内所有成员(包括私有成员)。...还是我们的Point类和Circle类,稍作修改一下: class Circle; class Point { friend Circle; }; 注意 元和元函数是单向的,我把你当作朋友,但在你的心里

15220

C++_元函数与元类

元 1.知识点介绍 类的特性之一就是封装,而元就是C++为用户提供打破这种封装的手段,元分为元函数和元对象 2.元函数 1、元函数,他只是一个函数,元函数不是类的成员,通过类对象是无法访问的...元类是一个单独的类,只不过和元函数一样,在类中声明了一个元类,在这个元类中同样也 可以访问该类中的所有成员,在A类中声明B类为A类的元类,那么在B类中就可以访问A类中的所有成员 // 示例...; // CA中定义一个对CTestClass类操作的函数 }; void CA::fun(CTestClass& c) { c.id = 10; if (c.name) delete[...] c.name; c.name = new char[11]; strcpy(c.name, "我是木杉乀"); } int main() { CA a; CTestClass Test;...的数据, B不可以访问A的数据 不传递: A是B的朋友, B是C的朋友, 但A和C没有关系 不继承: A是B的朋友, C是B的儿子, A和C没有关系

50220

C++ 语言】面向对象 ( 成员函数 | 常量函数 | 元函数 | 元类 | 单例类 )

文章目录 成员函数 常量函数 元函数 new 创建对象 元类 单例类 成员函数 ---- 此处继续上一篇博客继续向后讲解C++面向对象 类成员方法 , 除了定义构造方法与析构方法之外 ,...---- 外部访问类中的私有成员变量 , 有两种方法 , 一种是使用共有的成员方法访问 , 另一种是在元函数中访问 ; 元函数 , 在元函数中 , 可以从类的外部访问类中的私有成员变量 ,...---- 元类 , 元类中所有的成员函数都是该类的元函数 , 可以访问该类对象的私有成员变量 ; 元类声明 , 声明元类方法 friend class 元类名称; , 元类中所有的成员函数都是该类的元函数...; Student.h 中友元类声明 //声明元类 , 可以在元类中访问修改类中的私有成员变量 //元类中的所有的成员函数都是元函数 friend class Teacher; 元类定义与实现...中的元类 , 该元类中的所有函数都是 Student 对象的元函数 class Teacher { public: //元类中声明方法 , 修改 Student 中的 id 编号 void

48820

C++元函数与元类

元函数是一个可以访问类的私有成员的函数,并且它不属于这个类。 元类则是可以访问另一个类的私有成员的类。...声明元函数/元类,则需要这样做: 比如,我们需要生命ClassTwo是ClassOne的元类,那么我们要在ClassOne中加入这么一行语句: friend class ClassTwo; 相应的...这就是说,如果函数B要成为类A的元函数,那么必须在A中声明B是元函数。 并且,朋友关系不具有对称性。假设有两个类A、B,B是A的元类,但是并不意味着A是B的元类。...(除非在B中声明A是它的元类) 朋友关系不具有传递性。B是A的元类,C是B的元类,那么并不意味着C一定是A的元类。...int x; }; //setX可以修改Count中的私有成员的值,因为在第六行已经把它定义为类Count的元函数 void setX(Count& c, int val) { c.x = val

29720

C++】元类 ( 元类简介 | 元类声明 | 元类单向性 | 元类继承性 | 元类作用 | 元类和元函数由来 | Java 反射机制 | C C++ 编译过程 )

一、元类简介 1、元类引入 在 C++ 语言中 , " 元类 " 是 一个类 与 另外一个类 的 特殊类关系累 , 在 类 A 的 " 元类 " B 中 , 可以直接访问 A 类 的 私有成员...作为 某个类的 数据操作 辅助类 ; 作为 多个类 之间 传递信息 的 辅助类 ; 二、元类和元函数由来 1、元类和元函数引入 元类 和 元函数 会破坏 C++ 面向对象 的封装性 , 那么为什么还会出现该机制呢...有些编程场景 , 需要破坏类的封装性 , 需要访问类的私有属性 ; Java 中给出的方案是 反射机制 ; C++ 中给出的方案是 元函数 和 元类 ; 2、Java 反射机制 Java 类编译成...访问 类的私有属性 ; 反射机制 在 特定领域开发 中应用广泛 , 如 SDK , 开发框架 , 逆向 等领域中 ; 反射机制 是 面向切面编程 AOP 的基础 ; 反射机制 成为一种编程标准 ; 3、C.../ C++ 编译过程 C 代码 和 C++ 代码 , 编译成 so 动态库 或 a 静态库 , 需要如下步骤 : 预编译 编译 汇编 链接 最终的 函数库 中 都是汇编指令 , 机器码指令 , 如果要从指令中查找指定的类的私有属性

23110

C++ 元函数

类的元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管元函数的原型有在类的定义中出现过,但是元函数并不是成员函数。...元可以是一个函数,该函数被称为元函数;元也可以是一个类,该类被称为元类,在这种情况下,整个类及其所有成员都是元。...如果要声明函数为一个类的元,需要在类定义中该函数原型前使用关键字 friend,如下所示:class Box{ double width;public: double length; friend...void printWidth( Box box ); void setWidth( double wid );};声明类 ClassTwo 的所有成员函数作为类 ClassOne 的元,需要在类...width = wid;} // 请注意:printWidth() 不是任何类的成员函数void printWidth( Box box ){ /* 因为 printWidth() 是 Box 的

75320

C++ 元函数

元函数概述 类的元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管元函数的原型有在类的定义中出现过,但是元函数并不是成员函数。...元可以是一个函数,该函数被称为元函数;元也可以是一个类,该类被称为元类,在这种情况下,整个类及其所有成员都是元。...元函数特点 元函数是在类声明中由关键字friend修饰说明的非成员函数,在它的函数体中能够通过对象名访问private和protected成员; 可以增加灵活性,使程序可以在封装和快速性方面做合理选择...如果要声明函数为一个类的元,需要在类定义中该函数原型前使用关键字 friend,如下所示: class Box { double width; public: double length;...,需要在类 ClassOne 的定义中放置如下声明: friend class ClassTwo; 元函数示例1代码如下: #include "iostream" using namespace std

17120

C++:11---元函数、元类

一、元(friend) 概念:通过元,打破了类的封装性,可以访问类内的所有成员 分类:元函数、元类 二、元函数 概念:元函数是一个普通函数,不属于类,但需要在类内表明元关系...元函数可访问类内所有成员,但类不可以访问元函数内部数据 格式 元函数可以在类内声明时,需要加上关键字friend 元函数可以在类外声明,类外定义。...元类也不属于类成员,不拥有this指针 一个类A成为另一个类B的元类时,类A就可以访问类B的所有成员 元类的形式分为两种 使整个类成为元 使类中的某一部分函数成为元 使整个类成为元 class...四、元特点 单方向性:即元可访问类,但是类不能访问元 不传递性:A是B的元,C是A的元,但C不是B的元 不继承:在上面的元类中有介绍 ?...五、元的声明和作用域的关系 使用一个元时,要考虑到其元的声明和作用域的问题,请看下面代码 class X { public: friend void f(){} //元函数在类内定义 X()

59720

C++元函数和元类的使用

1.元介绍 在C++中,元(friend)是一种机制,允许某个类或函数访问其他类的私有成员。通过元,可以授予其他类或函数对该类的私有成员的访问权限。...元关系在一些特定的情况下很有用,例如在类之间共享数据或实现特定的功能。 元可以分为两种类型:类元和函数元。...2.类元 类元(Friend Class): 可以将一个类声明为另一个类的元。这样,在被声明为元的类中,就可以直接访问另一个类的私有成员。...类元关系在类之间共享数据或实现特定功能时很有用。 元关系是单向的,不具有传递性。如果类A是类B的元,类B不一定是类A的元。...在C++中,我们使用类对数据进行了隐藏和封装,类的数据成员一般都定义为私有成员,成员函数一般都定义为公有的,以此提供类与外界的通讯接口。

21830

C++中的

同样的道理,在C++中实现这种功能需要借助元的机制。简单来说就是如果某个类外的对象需要访问类内的私有成员,在类内声明为元类型即可。...一、全局函数做元 在本例中,首先构造了一个 house 类,需要在类内声明全局函数 Friend 为元方能访问类内的私有成员: class house { friend void Friend(house...其实类做元跟函数做元一样,如下例所示: class house{ // 将 friend_house 类声明为house的元后,该类实例化的对象能够访问 house 类对象的所有成员 friend...其实无论什么做元都是一样的目的,只是元的声明格式不同,比如: 全局函数的声明:friend void Friend(house& p_house); // friend 是元的关键字 元类的声明...1; } 输出结果为: 基正在客厅 基正在卧室

24400

C++类的this指针,静态成员,元函数元类

---- 1. this指针 在上篇讲C++中类,对象,封装,继承(派生),多态的时候,this指针出现在成员函数中,并使用->成员提取符操作成员变量。...在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址,this 指针是所有成员函数的隐含参数,实际上成员函数默认第一个参数为T* const register this,this指针在成员函数的开始执行前构造的...元函数元类 所谓元函数,就是在类中,用friend关键字声明一个函数,这个函数的声明在类中,但不作为类的成员函数,虽然元函数不属于成员函数,却可以访问类中的成员,不论成员是public,pirvate...对于元函数,放在public和private,或者是protected,都是可以的。...因为是需要元来共享数据,那么大多数情况,元函数都是有参数的, 因为元函数没有this指针,则参数要有三种情况: 要访问非static成员时,需要对象做参数; 要访问static成员或全局变量时

1.4K10

C++】元函数 ( 元函数简介 | 元函数声明 | 元函数语法 | 元函数声明不受访问控制限制 | 元函数参数要求 )

一、元函数简介 在 C++ 语言中 , " 元函数 " 是 与 类 相关联的函数 , " 元函数 " 不是类的成员函数 , 但是可以访问类的 private 私有成员 和 protected 保护成员...; 元函数可以是 全局函数 本类的成员函数 其他类的成员函数 元函数 是 类的 朋友 , 在 元函数 中 , 可以修改 类对象 中的 私有属性 和 保护属性 ; 元函数 破坏了 类的 封装性...; 二、元函数声明 1、元函数语法 " 元函数 " 需要在 类 中进行声明 , 使用 friend 关键字修饰函数 , 语法如下 : class ClassName { // 成员变量和成员函数...元函数 的 函数名 ; arguments : 是 元函数 的 参数列表 ; 2、元函数声明不受访问控制限制 " 元函数 " 的 声明 , 不受类的访问控制限制 , 可以在任何地方定义 , 如...: 在 private: , protected: , public: , 下声明 元函数 , 并不影响到 元函数 的使用 ; 只要 声明了 " 元函数 " , 不管在什么位置声明 , 都可以正常通过该元函数

26920

C++:静态成员与

如果将其放在全局变量中,那么 C++ 的封装性将受到影响,静态成员案例见以下程序片段 class student{ public: student(string nName =...stuNum--; } 然后在 C++ 工程文件中包含 student.cpp 和 main()函数所在 cpp 文件即可,这是静态数据成员的标准使用方法。...如何创建元?...元的使用 像以上程序片段那样创建元函数后,就可以通过该函数访问多个类中的任何成员了,需要注意的是,虽然元函数写在了类的声明中,但它并不是一个成员函数,它仍然只是一个普通的函数,只是有访问部分类中任意成员的权限...类 整个类也可以是另一个类的元,这类元被称为类。如何使用,见以下程序片段 class teacher{ public: //..

64610

C++面向对象元,全局函数、类、成员函数做

元 生活中你的家有客厅(Public),有你的卧室(Private) 客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去 但是呢,你也可以允许你的好闺蜜好基进去。...在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到元的技术 元的目的就是让一个函数或者类 访问另一个类中私有成员 元的关键字为 ==friend== 元的三种实现 全局函数做元...类做元 成员函数做元 全局函数做元 class Building { //告诉编译器 goodGay全局函数 是 Building类的好朋友,可以访问类中的私有内容 friend void...: " m_SittingRoom << endl; cout m_BedRoom << endl; } void...::visit2() { cout m_SittingRoom << endl; //cout << "好基正在访问" << building-

34220

从零开始学C++之友元:元函数和元类

可以把一个函数指定为类的元,也可以把整个类指定为另一个类的元。...元函数 元类 二、元函数 元函数在类作用域外定义,但它需要在类体中进行说明 为了与该类的成员函数加以区别,定义的方式是在类中用关键字friend说明该函数,格式如下: friend  ...类型 元函数名(参数表); 元的作用在于提高程序的运行效率 元函数注意事项: 1、元函数不是类的成员函数,在函数体中访问对象的成员,必须用对象名加运算符“.”加对象成员名。...,即A类向B类开放其Private/Protectd内容, 让B直接存取 元类:一个类可以作另一个类的元类的所有成员函数都是另一个类的元函数 元类的声明: friend class 类名;...参考: C++ primer 第四版 Effective C++ 3rd C++编程规范

70300
领券