(参考)CPP程序设计第09课时教案_第1页
(参考)CPP程序设计第09课时教案_第2页
(参考)CPP程序设计第09课时教案_第3页
(参考)CPP程序设计第09课时教案_第4页
(参考)CPP程序设计第09课时教案_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 时 教 案周 次第5周第1次课课题类(二)授课类型理论课( )、实践课( )、实习( )时间设计授课内容与教学设计一、 访问控制1. 访问控制符有:public、private等。默认情况下没有指定访问控制符时为private。访问控制符用于控制类的成员的可见性。private:在类的内部可见。通常用于类的数据成员。public:在整个程序中均可见。通常用于类的成员函数。但是类的成员函数也可以设置为private的,表示这样的成员函数仅供类的内部使用。设计类的时候要注意,类的内部细节尽量隐藏(封装起来),仅向外部提供类的使用接口(供外部操整理操作类的函数)。见P270。2. 类的程序结构将

2、类的定义放在头文件中,类的实现放在源文件中。包含这类头文件时使用双引号而不是使用尖括号。见P217。二、 类的作用域类定义作用域:有类定义的地方就可以使用类名和类中一切公有的成员。类定义作用域与局部变量的作用域相似,类作用域包含类定义的花括号语句块。见P272。类作用域:仅包括类定义内部和所有其成员函数的定义体。类的成员函数对数据成员和其他成员函数具有无限制的访问权。范例程序见P273。三、 静态成员1. 静态数据成员:每个对象都拥有的共同的属性。不依赖于某个具体的对象而存在,在所有对象产生前就存在了,所以应当在程序启动时初始化。每一个对象对静态数据成员的修改都会影响其他对象对它的读取。见P2

3、79。静态数据成员的定义:在前面加上static。#include <iostream>#include <string>using namespace std;class Studentstatic int sn;string name;public:void set(string str)name = str;sn+;void print()cout<<"name:"<<name<<" number:"<<sn<<endl;int Student:sn = 0;int

4、 main()Student stu;stu.set("Jobs");stu.print();Student s2;s2.set("Apple");s2.print();2. 静态成员函数:在成员函数前加上static,不受对象的限制,可以由对象名调用,也可以由类名调用。在静态成员函数中不能访问数据成员。见P280。#include <iostream>#include <string>using namespace std;class Studentstatic int sn;string name;public:void se

5、t(string str)name = str;sn+;static printStatic()cout<<"Static Function:"<<sn<<endl;void print()cout<<"name:"<<name<<" number:"<<sn<<endl;int Student:sn = 0;int main()Student:printStatic();Student stu;stu.set("Jobs&quo

6、t;);stu.printStatic();stu.print();Student s2;s2.set("Apple");s2.print();四、 友元1. 友元函数:将一个普通函数声明为类的友元,则该函数就可以直接访问类的私有数据。#include <iostream>#include <string>using namespace std;class Studentstatic int sn;string name;public:void set(string str)name = str;friend void print(Student&a

7、mp; s);void print(Student& s)cout<<"name:"<<<<endl;int Student:sn = 0;int main()Student s1;s1.set("Jobs");print(s1);Student s2;s2.set("Apple");print(s2);友元函数在操作符重载中也是常用的。友元函数的定义一般放在类的实现中。类的成员函数也可以是另一个类的友元函数。#include <iostream>#include &

8、lt;string>using namespace std;class Student;class Teacherpublic:void print(Student& s);class Studentstatic int sn;string name;public:void set(string str)name = str;friend void Teacher:print(Student& s);void Teacher:print(Student& s)cout<<"name:"<<<<en

9、dl;int Student:sn = 0;int main()Student s1;s1.set("Jobs");Teacher t;t.print(s1);Student s2;s2.set("Apple");t.print(s2);2. 友元类:整个类也可以是友元,则这个友元称为友类。友类的每个成员函数都可以访问另一个类中的私有成员。#include <iostream>#include <string>using namespace std;class Student;class Teacherpublic:void pr

10、int(Student& s);class Studentstatic int sn;string name;public:void set(string str)name = str;friend class Teacher;void Teacher:print(Student& s)cout<<"name:"<<<<endl;int Student:sn = 0;int main()Student s1;s1.set("Jobs");Teacher t;t.print(s1);Student s2;s2.set("Apple");t.print(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论