版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/7/15,陕西科技大学计算机系,1,第5章类和对象(一),5.1类的定义 5.2对象的定义 5.3对象的初始化 5.4成员函数的特性 5.5静态成员 5.6友元 5.7对象的生存期,2020/7/15,陕西科技大学计算机系,2,5.1类的定义,类是通过抽象数据类型的方法来实现的一种数据类型;,类是面向对象程序设计的核心;,类是对某一类对象的抽象,对象是某一种类的实例;,类是C+实现抽象数据类型的工具;,2020/7/15,陕西科技大学计算机系,3,5.1.1什么是类,类是一种复杂数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体;,类具有更高的抽象性,类中的数据具
2、有隐藏性;,2020/7/15,陕西科技大学计算机系,4,5.1.2类的定义格式,说明部分:说明该类中的成员,包含数据成员的说明和成员函数的说明;,实现部分:对成员函数的定义;,1、类定义格式的构成,2、类的一般定义格式,class public: private: ; ,访问权限,类定义 关键字,语句 结束符,2020/7/15,陕西科技大学计算机系,5,5.1.2类的定义格式(续),访问权限修饰符:公有的(public)、私有的(private)和保护的(protected);,访问权限修饰符出现的先后次序无关,并且允许多次出现;,3、类定义的说明,缺省访问权限为私有的;,公有部分:一些操
3、作(即成员函数),是提供给用户的接口功能;,私有部分:一些数据成员,通常用来描述该类中的对象的属性;,2020/7/15,陕西科技大学计算机系,6,5.1.2类的定义格式(续),4、示例(tdate.h),class TDate public: void SetDate(int y,int m,int d); int IsLeapYear(); void Print(); private: int year,month,day; ; void TDate:SetDate(int y,int m,int d) year=y; month=m;,成员函数定义,作用域运算符,2020/7/15,陕西
4、科技大学计算机系,7,5.1.2类的定义格式(续),day=d; int TDate:IsLeapYear() return (year%4=0 ,成员函数定义,成员函数定义,作用域运算符:,作用:标识某个成员属于哪个类;,格式::(),2020/7/15,陕西科技大学计算机系,8,5.1.3定义类时的注意事项,在类体中不允许对所定义的数据成员进行初始化;,class TDate public: . private: int year(1998),month(4),day(9); ;,错误,类中的数据成员的类型可以是任意的;,包含整型、浮点型、字符型、数组、指针和引用等;,另一个类的对象,可以
5、作该类的成员;,自身类的对象不可以作该类的成员;,2020/7/15,陕西科技大学计算机系,9,5.1.3定义类时的注意事项(续),class N; class M public: . private: N *n; ; class N public: void f(M m); ;,提前说明类N,自身类的指针或引用,可以作该类的成员;,当另一个类的对象作为该类的成员时,如果另一个类的定义在后,需要提前说明;,一般在类体内先说明用户感兴趣的公有成员,再说明私有成员;,习惯将类定义的说明部分或者整个定义部分(包含实现部分)放到一个头文件中;,n是N类的对象,m是M类的对象,2020/7/15,陕西科
6、技大学计算机系,10,5.2.1对象的定义格式,例如: TDate date1,date2,*Pdate,date31;, ;,对象的定义格式。,2020/7/15,陕西科技大学计算机系,11,5.2.2对象成员的表示方法,1、一般对象,数据成员:.,成员函数:.(),.运算符:表示对象的成员,例如: date1.year, date1.month, date1.day; date1.SetDate(1998,4,9);,2、指针对象,数据成员:-,成员函数:-(),-运算符:表示对象的成员,例如:Pdate-year, Pdate-SetDate(1998,4,9);,2020/7/15,陕
7、西科技大学计算机系,12,5.2.2对象成员的表示方法(续),-运算符与.运算符的区别,-表示指向对象的指针的成员;,.表示一般对象的成员;,两种等价表示,-,(*).,3、引用对象,与一般对象相同;,2020/7/15,陕西科技大学计算机系,13,5.2.2对象成员的表示方法(续),#include #include tdate.h void main() TDate date1,date2; date1.SetDate(1996,5,4); date2.SetDate(1998,4,9); int leap=date1.IsLeapYear(); coutleapendl; date1.P
8、rint(); date2.Print(); ,输出: 1 1996.5.4 1998.4.9,例5.1:分析下列程序的输出结果。,2020/7/15,陕西科技大学计算机系,14,5.3.1构造函数和析构函数,1、构造函数与析构函数的功能,特殊的成员函数;,构造函数:在创建对象时,使用特定的值来将对象初始化;,析构函数:用来释放对象,在对象删除前做一些清理工作;,2020/7/15,陕西科技大学计算机系,15,5.3.1构造函数和析构函数(续),示例(tdate1.h),class TDate1 public: TDate1(int y,int m,int d); TDate1(); void
9、 Print(); private: int year,month,day; ; TDate1:TDate1(int y,int m,int d) year=y; month=m;,构造函数,析构函数,2020/7/15,陕西科技大学计算机系,16,5.3.1构造函数和析构函数(续),day=d; coutConstructor called. endl; TDate1:TDate1() coutDestructor called. endl; void TDate:Print() coutyear.month.dayendl; ,2020/7/15,陕西科技大学计算机系,17,5.3.1构造
10、函数和析构函数(续),构造函数是成员函数,函数体可写在类体内,也可写在类体外;,2、构造函数的特点,3、析构函数的特点,构造函数的名字与类名相同;,析构函数的名字在类名前加 字符;,析构函数是成员函数,函数体可写在类体内,也可写在类体外;,构造函数不指定返回类型,它有隐含的返回值,该值由系统内部使用;,析构函数不指定返回类型;,2020/7/15,陕西科技大学计算机系,18,5.3.1构造函数和析构函数(续),构造函数可以有一个或多个参数;,2、构造函数的特点,3、析构函数的特点,构造函数可以重载;,一个类中只能定义一个析构函数;,析构函数没有参数;,程序中不能直接调用构造函数,在创建对象时系
11、统自动调用构造函数;,析构函数在对象存在的函数体结束时或使用delete运算符释放new运算符创建的对象时被自动调用;,2020/7/15,陕西科技大学计算机系,19,5.3.1构造函数和析构函数(续),#include #include tdate1.h void main() TDate1 today(1998,4,9), tomorrow(1998,4,10); coutToday is ; today.Print(); coutTomorrow is ; tomorrow.Print(); ,输出: Constructor called. Constructor called. Tod
12、ay is 1998.4.9 Tomorrow is 1998.4.10 Destructor called. Destructor called.,例5.3:分析下列程序的输出结果。,2020/7/15,陕西科技大学计算机系,20,5.3.2缺省构造函数和缺省析构函数,:() ,1、缺省构造函数,类定义中没有任何构造函数时,由编译器自动生成一个不带参数的缺省构造函数;,缺省构造函数即参数表为空的构造函数;,:() ,2、缺省析构函数(定义时机同缺省构造函数),类名,2020/7/15,陕西科技大学计算机系,21,5.3.3拷贝初始化构造函数,1、功能,用一个已知的对象来初始化一个被创建的同类
13、对象;,2、特点,函数名同类名,无返回类型;,只有一个参数,是对某个对象的引用;,每个类都必须有一个拷贝初始化构造函数;,:(const Y=y; TPoint(TPoint ,例5.4:分析下列程序的输出结果。,构造函数,拷贝初始化构造函数,2020/7/15,陕西科技大学计算机系,23,5.3.3拷贝初始化构造函数(续),TPoint:TPoint(TPoint ,#include #include tpoint1.h TPoint f(TPoint Q); void main() TPoint M(20,35),P(0,0); TPoint N(M);,M为已知对象,N是正在创建的对象,
14、2020/7/15,陕西科技大学计算机系,24,5.3.3拷贝初始化构造函数(续),P=f(N); coutP=P.Xcoord(), P.Ycoord()endl; TPoint f(TPoint Q) coutOK! endl; int x,y; x=Q.Xcoord()+10; y=Q.Ycoord()+20; TPoint R(x,y); return R; ,传值调用,将R的值作为返回值,2020/7/15,陕西科技大学计算机系,25,5.3.3拷贝初始化构造函数(续),输出: Copy_initialization Constructor called. Copy_initiali
15、zation Constructor called. OK! Copy_initialization Constructor called. Destructor called. Destructor called. Destructor called. P=30,55 Destructor called. Destructor called. Destructor called.,匿名对象,2020/7/15,陕西科技大学计算机系,26,5.3.3拷贝初始化构造函数(续),4、使用拷贝初始化构造函数初始化的三种情况,明确表示由一个对象初始化另一个对象时;,例如:TPoint N(M);,当对
16、象作为函数实参传递给函数形参时(传值调用);,例如:P=f(N);,当对象作为函数返回值时(数据值);,例如:return R;,2020/7/15,陕西科技大学计算机系,27,5.3.4赋值,1、功能,用于更新类类型的对象;,2、特点,该函数的函数名是一个操作符,必须与关键字operator合用;,该函数只有一个参数,是对该类某个对象的常引用;,一般赋值操作返回对被赋值对象的引用;,2020/7/15,陕西科技大学计算机系,28,5.3.4赋值(续),类中未声明赋值操作时,编译器自动生成一个公有的赋值操作;,赋值操作的等价表示形式:, 等价于B.operator =(A);,每个类都有一个赋
17、值操作;,2020/7/15,陕西科技大学计算机系,29,5.3.4赋值(续),#include class Location public: Location(int xx=0,int yy=0) X=xx;Y=yy; Location(Location ,例5.4:分析下列程序的输出结果。,赋值函数,2020/7/15,陕西科技大学计算机系,30,5.3.4赋值(续),Location,输 出,Assignment operator called. B=1,2,2020/7/15,陕西科技大学计算机系,31,5.3.4赋值(续),3、何时需要在类中定义拷贝初始化和赋值操作,当类中声明有指针
18、数据成员时,必须定义拷贝初始化和赋值操作,否则编译器生成的拷贝初始化操作和赋值操作的执行将导致程序在运行时产生问题;,class AA:A(int i) public: p=new int(i); A(int i); A(); A:A() private: int *p; delete p; ; ,2020/7/15,陕西科技大学计算机系,32,5.3.4赋值(续),void main() A a(5); A b(a); . A c(5),d(10); d=c; . ;,拷贝初始化:a和b对象的指针 指向同一个对象,执行析构 函数将删除同一个对象两次;,赋值:d对象的p指针被更新 为c对象的p
19、指针的值,则: (1)d对象的p指针原先所指向的 值将无法访问;(2)执行析构函 数将删除同一个对象两次;,5,5,10,2020/7/15,陕西科技大学计算机系,33,5.3.4赋值(续),/修改 A:A(A,5,5,10,5,5,2020/7/15,陕西科技大学计算机系,34,5.4成员函数的特征,在类中说明原形,可以在类外给出函数体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形成内联成员函数。 允许声明重载函数和带默认形参值的函数,2020/7/15,陕西科技大学计算机系,35,5.4.1内联函数和外联函数,内联函数:定义在类体内的成员函数,或定义在类体外,但使用in
20、line关键字进行说明的成员函数;,外联函数:说明在类体内,定义在类体外的成员函数;,2020/7/15,陕西科技大学计算机系,36,5.4.1内联函数和外联函数(续),例5.6:分析下列程序的输出结果。,#include class A public: A(int x,int y) X=x;Y=y; int a() return X; int b() return Y; int c(); int d(); private: int X,Y; ;,2020/7/15,陕西科技大学计算机系,37,5.4.1内联函数和外联函数(续),inline A:c() return a()+b(); inl
21、ine int A:d() return c(); void main() A m(3,5); int i=m.d(): coutd() return:iendl; ,输出: d() return:8,内联函数,内联函数,2020/7/15,陕西科技大学计算机系,38,5.4.2重载性,构造函数可以重载;,析构函数不能重载;,一般成员函数可以重载;,2020/7/15,陕西科技大学计算机系,39,5.4.2重载性(续),例5.7:分析下列程序的输出结果。,#include class M public: M(int x,int y) X=x;Y=y; M(int x) X=x;Y=x*x; i
22、nt Add(int x,int y); int Add(int x); int Add(); int Xout() return X; int Yout() return Y; private: int X,Y; ;,构造函数重载,一般成员函数重载,2020/7/15,陕西科技大学计算机系,40,5.4.2重载性(续),int M:Add(int x,int y) X=x; Y=y; return X+Y; int M:Add(int x) X=Y=x; return X+Y; int M:Add() return X+Y; ,2020/7/15,陕西科技大学计算机系,41,5.4.2重载性
23、(续),void main() M a(10,20),b(4); couta=a.Xout(), a.Yout()endl; coutb=b.Xout(), b.Yout()endl; int i=a.Add(); int j=a.Add(3,9); int k=a.Add(5); coutiendljendlkendl; ,输 出,a=10,20 b=4,16 30 12 10,2020/7/15,陕西科技大学计算机系,42,5.4.3设置参数的缺省值,一般成员函数和构造函数都可以被设置缺省参数值。,2020/7/15,陕西科技大学计算机系,43,5.4.3设置参数的缺省值(续),例5.8:
24、分析下列程序的输出结果。,#include class N public: N(int a=3,int b=5,int c=7); int Aout() return A; int Bout() return B; int Cout() return C; private: int A,B,C; ; int N:N(int a,int b,int c),构造函数设置缺省参数值,2020/7/15,陕西科技大学计算机系,44,5.4.3设置参数的缺省值(续), A=a; B=b; C=c; void main() N X,Y(9,11),Z(13,15,17); coutX=X.Aout(),
25、X.Bout(), X.Cout()endl; coutY=Y.Aout(), Y.Bout(), Y.Cout()endl; coutZ=Z.Aout(), Z.Bout(), Z.Cout()endl; ,输出: X=3,5,7 Y=9,11,7 Z=13,15,17,2020/7/15,陕西科技大学计算机系,45,5.5静态成员,目的: 解决数据共享问题,即不通过全局对象,而实现多个对象之间的数据共享。,2020/7/15,陕西科技大学计算机系,46,5.5.1静态数据成员,1、静态数据成员,是类的所有对象共享的成员,而不是某个对象的成员;,对多个对象来说,静态数据成员只存储在一个地方,
26、供所有对象使用;,静态数据成员的值对每个对象都是一样的,但其值可以被任何一个对象更新;,2、使用方法与注意事项,静态数据成员在定义或说明时前面加上关键字static;,private: static int s;,s是私有的静态数据成员;,2020/7/15,陕西科技大学计算机系,47,5.5.1静态数据成员(续),静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化;,静态数据成员的初始化与一般数据成员初始化不同,格式如下:,说明:,初始化在类体外进行,前面不加static,以免与一般静态变量或对象混淆;, :=;,初始化时不加该成员的访问权限控制符(静态数据成员初始化位置与访问权限
27、无关);,初始化时使用作用域运算符表明它所属的类;,引用格式: :,2020/7/15,陕西科技大学计算机系,48,5.5.1静态数据成员(续),例5.10:分析下列程序的输出结果。,#include class Myclass public: Myclass(int a,int b,int c); void GetNumber(); void GetSum(); private: int A,B,C; static int Sum; ; int Myclass:Sum=0;,私有静态数据成员Sum,静态数据成员Sum初始化,2020/7/15,陕西科技大学计算机系,49,5.5.1静态数据成
28、员(续),Myclass:Myclass(int a,int b,int c) A=a; B=b; C=c; Sum+=A+B+C; void Myclass:GetNumber() coutNumber=A, B, Cendl; void Myclass:GetSum() coutSum=Sumendl; ,2020/7/15,陕西科技大学计算机系,50,5.5.1静态数据成员(续),void main() Myclass M(3,7,10),N(14,9,11); M.GetNumber(); N.GetMumber(); M.GetSum(); N.GetSum(); ,输 出,Numb
29、er=3,7,10 Number=14,9,11 Sum=54 Sum=54,2020/7/15,陕西科技大学计算机系,51,5.5.2静态成员函数,1、作用,操作静态数据成员;,3、注意事项,静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员;,静态成员函数中要引用非静态成员时,可以通过对象来引用;,2、使用格式,:(),2020/7/15,陕西科技大学计算机系,52,5.5.2静态成员函数(续),例5.11:分析下列程序的输出结果。,#include class M public: M(int a) A=a;B+=a; static void f1(M m);
30、 private: int A; static int B; ; void M:f1(M m) ,私有静态数据成员B,公有静态成员函数,静态成员函数体,2020/7/15,陕西科技大学计算机系,53,5.5.2静态成员函数(续),coutA=m.Aendl; coutB=Bendl; int M:B=0; void main() M P(5),Q(10); M:f1(P); M:f1(Q); ,调用静态成员函数 :(),通过对象引用非静态成员,直接引用静态成员,私有静态数据成员初始化,输 出,A=5 B=15 A=10 B=15,2020/7/15,陕西科技大学计算机系,54,5.5.2静态成
31、员函数(续),例5.10: 某商店经销一种货物,货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不一样,因此,商店需要记录下目前库存的货物的总重量,现在要求用C+语言来模拟商店货物购进和卖出的情况。,2020/7/15,陕西科技大学计算机系,55,5.5.2静态成员函数(续),#include class Goods public: Goods(int w); Goods(); int Weight(); static int TotalWeight(); private: int weight; static int totalWeight; ; Goods:Goods(int
32、w) ,现有库存,货物购进,货物卖出,2020/7/15,陕西科技大学计算机系,56,5.5.2静态成员函数(续),weight=w; totalWeight+=w; Goods:Goods() totalWeight-=weight; int Goods:Weight() return weight; int Goods:TotalWeight() return totalWeight; ,2020/7/15,陕西科技大学计算机系,57,5.5.2静态成员函数(续),int Goods:totalWeight=0; void main() int w; cinw; Goods g1(w);
33、cinw; Goods g2(w); coutGoods:TotalWeight()endl; ,2020/7/15,陕西科技大学计算机系,58,5.6友元,友元是C+提供的一种破坏数据封装和数据隐藏的机制。 通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息。 可以使用友元函数和友元类。 为了确保数据的完整性,及数据封装与隐藏的原则,建议尽量不使用或少使用友元。,2020/7/15,陕西科技大学计算机系,59,5.6友元,1、为什么引入友元,在对某些成员函数多次调用时,由于参数传递、类型检查和安全性检查等都需要时间开销,从而影响了程序的运行效率,引入友元后可
34、以提高程序的运行效率;增加灵活性,使程序员可以在封装和快速性方面做合理选择。,2020/7/15,陕西科技大学计算机系,60,友元函数是在类声明中由关键字friend修饰说明的非成员函数,在它的函数体中能够通过对象名访问 private 和 protected成员 作用:增加灵活性,使程序员可以在封装和快速性方面做合理选择。 访问对象中的成员必须通过对象名。,5.6.1友元函数,2020/7/15,陕西科技大学计算机系,61,例5.12:使用友元函数计算两点距离,#include #include using namespace std; class Point/Point类声明 public
35、:/外部接口 Point(int xx=0, int yy=0) X=xx;Y=yy; int GetX() return X; int GetY() return Y; friend float Distance(Point ,5.6.1友元函数,2020/7/15,陕西科技大学计算机系,62,double Distance( Point ,36,5.6.1友元函数,2020/7/15,陕西科技大学计算机系,63,5.6.1友元函数,例5.13:分析下列程序的输出结果。,#include class Time public: Time(int new_hours,int new_minute
36、s) hours=new_hours;minutes=new_minutes; friend void Time12(Time time); friend void Time24(Time time); private: int hours,minutes; ; void Time12(Time time) ,友元函数的定义,友元函数的说明,2020/7/15,陕西科技大学计算机系,64,5.6.1友元函数,例5.13:分析下列程序的输出结果。,#include class Time public: Time(int new_hours,int new_minutes) hours=new_h
37、ours;minutes=new_minutes; friend void Time12(Time time); friend void Time24(Time time); private: int hours,minutes; ; void Time12(Time time) ,友元函数的定义,友元函数的说明,2020/7/15,陕西科技大学计算机系,65,5.6.1友元函数(续),if(time.hours12) time.hours-=12; couttime.hours:time.minutes PMendl; else couttime.hours:time.minutes AMe
38、ndl; void Time24(Time time) couttime.hours:time.minutesendl; ,友元函数的定义,友元函数中使用私有数据成员,2020/7/15,陕西科技大学计算机系,66,5.6.1友元函数(续),void main() Time time1(20,30),time2(10,45); Time12(time1); Time24(time1); Time12(time2); Time24(time2); ,友元函数的调用,输 出,8:30 PM 20:30 10:45 AM 10:45,问题:若友元函数Time12和Time24的形参为引用,输出结果是
39、什么?,2020/7/15,陕西科技大学计算机系,67,若一个类为另一个类的友元,则此类的所有成员都能访问对方类的私有成员。 声明语法:将友元类名在另一个类中使用friend修饰说明。,5.6.2友元类,2020/7/15,陕西科技大学计算机系,68,5.6.2友元类,例5.14:分析下列程序的输出结果。,#include class X friend class Y; public: void Set(int i) x=i; void Display() coutx=x, y=yendl; private: int x; static int y; ;,友元类,2020/7/15,陕西科技大
40、学计算机系,69,5.6.2友元类(续),class Y public: Y(int i,int j); void Display(); private: X a; ; int X:y=1; Y:Y(int i,int j) a.x=i; X:y=j; ,子对象,类X的对象a作为类Y的数据成员,类Y中访问类X的私有数据成员x和y;,2020/7/15,陕西科技大学计算机系,70,5.6.2友元类(续),void Y:Display() coutx=a.x, ; couty=X:yendl; void main() X b; b.Set(5); b.Display(); Y c(6,9); c.
41、Display(); b.Display(); ,类Y中访问类X的私有数据成员x和y;,输出: x=5,y=1 x=6,y=9 x=5,y=9,如果类X中定义了参数非空的构造函数,结果如何?,2020/7/15,陕西科技大学计算机系,71,类的作用域简称为类域,它指在某个类的类体内。类域介于文件域和函数域之间。,5.7类的作用域(了解),2020/7/15,陕西科技大学计算机系,72,局部类: 在一个函数体内定义的类成为局部类。 局部类中不能说明静态成员函数。 所有成员函数必须定义在类体内。 很少用,了解即可。,5.8局部类和嵌套类(了解),嵌套类 在一个类中定义的类称为嵌套类 定义嵌套类的类
42、称为外围类 目的在于隐藏类名,减少全局的标识符,从而限制用户能否使用该类建立对象,2020/7/15,陕西科技大学计算机系,73,5.9对象的生存期,1、对象的生存期,指对象从被创建开始到被释放为止的时间;,局部对象:被定义在一个函数体或程序块内,作用域小,生存期短;,2、按生存期对对象的分类,静态对象:被定义在一个文件中,它的作用域从定义时起到文件结束时止;它的作用域较大,生存期也较长;,全局对象:被定义在某个文件中,它的作用域在包含该文件的整个程序中;它的作用域最大,生存期最长;,2020/7/15,陕西科技大学计算机系,74,例5-3具有静态、动态生存期对象的时钟程序,#include using namespace std; class Clock/时钟类声明 public:/外部接口 Clock(); void SetTime(int NewH, int NewM, int NewS); /三个形参均具有函数原型作用域 void ShowTime(); Clock() private:/私有数据成员 int Hour,Minute,Second; ;,2020/7/15,陕西科技大学计算机系,75,/时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 隧洞开挖支护施工方案
- 太阳能路灯施工方案
- 2025年建筑工程技术考试试题及答案
- 2026年教师资格面试结构化面试真题(附参考答案)
- 2026年矿产资源开发利用实施方案
- 2026年国家基本药物临床应用指南培训考试试题含答案
- 2026年某市政隧道工程洞门端墙施工方案
- 2026年医院地方病防治工作实施方案
- 2026年瑞昌市招聘南义镇“多员合一”农村地区村工作者2人考试备考题库及答案解析
- 2026年高职(现代物流管理)物流信息系统应用实训试题及答案
- 2026河南豫能控股股份有限公司及所管企业招聘31人备考题库及参考答案详解(黄金题型)
- 2026年平顶山发展投资控股集团有限公司校园招聘考试备考试题及答案解析
- 鹿茸菇项目可行性研究报告
- 2026校招:山东新动能基金管理公司笔试题及答案
- GB/T 47067-2026塑料模塑件公差和验收条件
- GB/T 21558-2025建筑绝热用硬质聚氨酯泡沫塑料
- 雨课堂学堂在线学堂云《Linux操作系统(东北)》单元测试考核答案
- 全国“红旗杯”班组长大赛知识考试题题库(含答案解析)
- 急诊科建设与管理指南(2025年版)
- 校医服务合同范本
- 村级三资监督范围课件
评论
0/150
提交评论