网站大量收购独家精品文档,联系QQ:2885784924

第2章面向对象基本概念重点.ppt

  1. 1、本文档共141页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 静态成员的定义 定义格式如下: static 静态成员的定义; class A{ int x,y; static int z; public: void Setxy(int a, int b) { x=a; y=b;} }; A a1, a2; a1.x a1.y a2.x a2.y z a1. z a2. z 不同对象,同一空间 * 静态数据成员的初始化 不能用参数初始化表对静态数据成员初始化,也不能在构造函数体内初始化,静态数据成员只能在类体外进行初始化。 静态数据成员初始化格式如下: 数据类型 类名::静态数据成员名=值; 不能在初始化语句中加static * class A{ int i,j; static int x,y;//定义静态成员 public: A(int a=0,int b=0,int c=0, int d=0){ i=a;j=b;x=c;y=d; } void Show(){cout i=i\tj=j\t; cout x=x\ty=y\n“;} }; int A::x=0; //给静态数据成员分配空间和初始化 int A::y=0; int main( ) { A a(2,3,4,5); a.Show(); A b(100,200,300,400); b.Show(); a.Show(); return 0; } a.x 和b.x在内存中占据一个空间 a.y 和b.y在内存中占据一个空间 i=2 j=3 x=4 y=5 i=100 j=200 x=300 y=400 i=2 j=3 x=300 y=400 * 在类的成员函数中可以直接访问该类的静态数据成员,而不必使用成员访问运算符或类名限定修饰符。 在类外必须使用成员访问运算符或类名限定修饰符访问公共静态数据成员。 静态数据成员的使用 对象名.静态成员 类名::静态成员 * class Student { public: … static int total; }; int Student::total=0; int main() { Student stud1(“Wang ling”); cout stud1.totalendl; Student stud2(“Liu xiao”); cout Student::totalendl; return 0; } * 静态数据成员与全局变量一样都是静态分配存储空间的,但全局变量在程序中的任何位置都可以访问它,而静态数据成员受到访问权限的约束。必须是public权限时,才可能在类外进行访问。 * 静态成员函数 静态成员函数就是使用static关键字声明的成员函数。 和静态数据成员一样,静态成员函数是类的一部分,而不是对象的一部分。 静态成员函数没有this 指针。 * * 注意 静态成员函数可以直接访问该类的静态成员,但不能直接访问类中的非静态成员。 如果静态成员函数中要使用非静态成员时,必须通过参数传递方式得到对象名,然后可以通过对象名来访问非静态成员。 * class Tc { private:int a; static int b;//静态数据成员 public:Tc(int c){a=c; b+=c;} static void display(Tc C)//Tc的对象为形参 { couta=C.a,b=bendl; } }; int Tc::b=2; int main() { Tc A(2),B(4); Tc::display (A); Tc::display (B); return 0; } 非静态成员,用对象名来引用 静态成员,直接引用 直接用类名来调用静态成员函数 a=2,b=8 a=4,b=8 * class Tc { private:int a; static int b;//静态数据成员 public:Tc(int c){a=c; b+=c;} static void display(Tc C);//Tc的对象为形参 }; void Tc::display(Tc C)//不用static修饰 { cout“a=C.a,b=bendl; } int Tc::b=2; int main() { Tc A(2),B(4); Tc::display (A); Tc::display (B); return 0; } 函数原型 类外定义 * 1

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档