C++实例 静态成员的引入——静态数据成员的定义、调用,静态成员函数的实现、调用。
来源:互联网 发布:php项目开发实战入门 编辑:程序博客网 时间:2024/05/17 19:19
代码描述:实现客户机(CLIENT)类。定义字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。
#include<iostream>
using namespace std;
class Client
{
public:
Client();
~Client();
void show();
static void ChangeServerName();
private:
static char ServerName[10];
static int ClientNum;
};
int Client::ClientNum=0;
char Client::ServerName[10]="abcd";
在一个对象里给它赋值,其他对象里的该成员也会发生变化。
为了避免混乱,所以不可在类体内进行赋值。
静态成员的值对所有的对象是一样的。静态成员可以被初始化,但只能在类体外进行初始化。
一般形式:
数据类型类名::静态数据成员名=初值
注意:不能用参数初始化表对静态成员初始化。一般系统缺省初始为0*/
Client::Client()
{
cout << "the Client is called";
ClientNum++;
}
Client::~Client()
{
cout << "" << endl;
ClientNum--;
}
void Client::ChangeServerName()
{/*静态成员函数在类外实现时候无须加static关键字,否则是错误的。
若在类的体外来实现上述的那个静态成员函数,不能加static关键字,
这样写就可以了:
int test::Getnum()
{
.........
}*/
cout << "please enter ServerName:"<<endl;
cin >> ServerName;
}
void Client::show()
{
cout << "the ServerName is :";
cout << ServerName << endl;
cout << "the ClientNum is :";
cout << ClientNum << endl;
cout << endl;
}
int main(void)
{
/*关于函数的调用,静态函数可以像普通成员函数一样
通过对象进行访问,也可以像Client::ChangeServerName()进行访问,
而普通成员函数,只能用通过对象的方式进行访问*/
Client::ChangeServerName();
Client a;
a.show();
Client::ChangeServerName();
Client b;
b.show();
Client::ChangeServerName();
Client c;
c.show();
}
阅读全文
0 0
- C++实例 静态成员的引入——静态数据成员的定义、调用,静态成员函数的实现、调用。
- 静态成员(静态成员函数,静态数据成员)的特性
- 非静态成员函数的非法调用
- 非静态成员函数的非法调用
- 普通成员函数调用静态成员数据
- 静态数据成员调用
- C++静态成员(静态成员变量、静态成员函数)与正常成员互相调用的权限问题
- C++使用线程函数pthread_create时,调用的成员函数要定义为静态成员函数
- 静态成员变量和静态成员函数的定义
- c#中静态成员与非静态成员的调用
- 类的 静态成员 --- 静态成员变量 、 静态成员函数
- 静态成员函数调用非静态成员
- 4.1 成员函数的各种调用方式(静态成员函数,非静态成员函数,虚拟成员函数)
- 关于静态数据成员与静态成员函数的…
- 类的静态数据成员和静态成员函数浅析
- 类的静态数据成员和静态成员函数
- 类的静态成员函数和静态数据成员
- 类的静态成员函数和静态数据成员
- freeCodeCamp-jQuery
- 编译原理学习笔记·语法分析(LL(1)分析法/算符优先分析法OPG)及例子详解
- 【HDU】1542 Atlantis 矩形面积并->线段树
- HDU-整除的尾数
- Java设计模式
- C++实例 静态成员的引入——静态数据成员的定义、调用,静态成员函数的实现、调用。
- 1042. Shuffling Machine (20)
- HDU 2722 Here We Go(relians) Again
- hive-4
- jstl、struts2取值问题
- 作业3.4
- 自己找到的一些在用RGB-D图像做SLAM时候可以用到的图像
- Windows环境下安装elasticserach
- dubbo之telnet命令