正文

C++个人回顾小结: 类(四)&&个人实践小结2006-12-16 16:26:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/edwardguo/21631.html

分享到:

静态成员

一、静态数据成员

目的:实现多个对象之间的数据共享。是类的所有对象中共享的成员。

可以节省内存,是所有对象所公有的。只存储一处,供所有对象共用。

用法和注意事项:

1、在定义或说明前面加关键字static

2、初始化为如下格式:

        <数据类型><类名>::<静态数据成员>=<值>;

      初始化时不加该成员的访问权限控制符private,public等。

      必须对它进行初始化。

3、引用静态数据成员时,采用如下格式:

      <类名>::<静态成员名>

 #include<iostream.h>
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;
Myclass::Myclass(int a, int b, int c)
{
 A=a;
 B=b;
 C=c;
 Sum+=A+B+C;
}
void Myclass::GetNumber()
{
 cout<<"Number="<<A<<","<<B<<","<<C<<endl;
}
void Myclass::GetSum()
{
 cout<<"Sum="<<Sum<<endl;
}

void main()
{
 Myclass M(3,7,10),N(14,9,11);
 M.GetNumber();
 N.GetNumber();
 M.GetSum();
 N.GetSum();
}

输出:

Number=3,7,10

Number=14,9,11

Sum=54

Sum=54

二、静态成员函数

静态成员函数的实现中不能直接引用类中说明的非静态成员,可以引用类中说明的静态成员。如果静态成员函数中要引用非静态成员时,可通过对象来引用。

#include<iostream.h>
class M
{
 public:
  M(int a){A=a;B+=a;}
  static void f1(M m);
 private:
  int A;
  static int B;
};
void M::f1(M m)
{
 cout<<"A="<<m.A<<endl;
 cout<<"B="<<B<<endl;
}

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

阅读(4841) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册