静态成员对象

1.该静态成员对象是属于类的,而非某个对象。

2.该静态成员对象为类的所有对象所共享一份

3.该静态成员不占用类对象的空间。

静态成员函数

class 类名
{public:static 返回值 函数名(形参列表){//静态成员函数的函数体//静态成员函数体中只能访问类中的静态数据,不可以访问类中非静态数据。//因为static修饰的成员函数没有的this指针。所以不可调用类中的非静态数据。 }
};

static修饰的成员函数并非修饰函数的存储形式,修饰的是成员函数的级别,这个级别就是此将成员函数提升为一个真正带有全局作用域的函数。

只不过此函数是隐藏在类的作用域之中而已。

所以此时该成员函数也就没有this指针。

所以此函数不能调用类中的非静态属性或方法。

此函数是为了整个类而服务的,而非某个对象,不依赖于对象的调用,可以直接使用类域 : : 调用。

例:

创建类:

#include <iostream>
using namespace std;
class Stu
{
private:string name;int age;static int count;
public:Stu(string name, int age){this->name = name;this->age = age;count++;cout << "Stu的构造" << endl;}//2.返回本对象。const Stu setName(string name){this->name = name;return *this;}string getName()const{return this->name;}int getAge()const{return this->age;}static int get_Count(){return count;}void showName()const{cout << this->name << endl;}~Stu(){cout << "Stu的析构" << endl;}Stu(const Stu& other){this->name = other.name;this->age = other.age;cout << "Stu的拷贝构造" << endl;}
};

类外对静态变量初始化:

//静态全局变量类外初始化
int Stu::count = 0;

全局函数:

void showInfo(const Stu& stu)
{cout << "姓名:" << stu.getName() << ",年龄:" << stu.getAge() << endl;
}

主函数:

int main()
{Stu stu("zhangsan",18);showInfo(stu);stu.setName("lisi").showName();cout << "-------------" << endl;Stu* stu2 = new Stu("zhangsan",20);stu2->setName("lisi");stu2->showName();delete stu2;cout << "------------------" << endl;cout << Stu::get_Count() << endl;   //2,    一共创建了两个对象return 0;
}

运行结果:

C++静态成员对象与静态成员函数相关推荐

  1. C++学习(五) 静态数据成员和静态成员函数

    文章目录 1.静态成员: 1.1.说明 1.2.格式 2.静态成员函数 2.1.说明 2.2.格式 1.静态成员: 1.1.说明 静态成员包括静态数据和静态成员函数. (1).静态数据成员的定义与普通 ...

  2. C++类的静态数据成员和静态成员函数

    目录 公有属性 静态数据成员 静态成员函数 公有属性 一些类对象可能会具有一些相同的属性,如果用普通数据成员来描述这些相同的属性,这意味着我们需要给每个对象的这个数据成员设定相同的值,如果改变类对象相 ...

  3. c++,static 静态成员变量 / 静态成员函数

    静态成员变量: //静态成员变量(static) // //1.如果想在同类的多个对象之间实现数据共享 ,可以用静态 //成员变量,即用static修饰的成员变量,例 static int a; // ...

  4. 类的静态成员函数带来了什么好处,应该在什么时候使用?

    函数的行为对所有派生类都一致时,可以声明为静态. 静态成员函数的作用基本上相当于一个带有命名空间的全局函数. 如一个数学类定义了一些函数 都可以声明伪静态的 Math.sin(x)等 好处很多,但所有 ...

  5. 类的静态成员与静态成员函数

    静态成员 即定义出一些成员与类本身直接相关,而不是与类的各个对象保持关联. 1,声明静态成员 在成员的声明之前加上关键字static使得其与类关联在一起 class Test { public:    ...

  6. C++静态数据成员和静态成员函数

    在C++面向对象编程过程当中,对象与对象之间的数据不是共享,在设计类的时候,有时候需要一些对象之间共享的数据,除了把所要共享的数据设置为全局数据或者函数之外,还可以利用C++的静态机制. 1.静态数据 ...

  7. c++远征之模板篇——静态数据成员,静态成员函数

    以下内容源于慕课网的学习整理,如有侵权,请告知删除. 1.静态数据成员 (1)不同于普通的数据成员,静态数据成员在没有实例化时,它也是存在的(即它是和类共存的): (2)它一般不依赖于构造函数的初始化 ...

  8. 静态数据成员与静态成员函数

    3-6 静态数据成员与静态成员函数 Time Limit: 1000MS Memory limit: 65536K 题目描述 通过本题目的练习可以掌握静态数据成员和静态成员函数的用法 要求设计一个点类 ...

  9. 静态成员函数与静态数据的使用

    #include <stdio.h> #include <stdlib.h> #include<math.h> #include <string.h> ...

最新文章

  1. python语言基础汇总
  2. SQL数据库面试题以及答案
  3. Python continue
  4. android保持数据库,android – 保持Firebase实时数据库中的数据始终保持同步
  5. 中石油训练赛 - Cafebazaar’s Chess Tournament(FFT)
  6. 解决Android 启动模拟器是出现“Failed to allocate memory: 8”错误提示
  7. protobuf版本冲突
  8. #{}不自动改参数类型_如何在不刷新页面的情况下改变URL
  9. 关于JQuery全选/反选第二次失效的问题
  10. 万能的林萧说:我来告诉你,一个草根程序员如何进入BAT。 - 今日头条(www.toutiao.com)...
  11. [zhuan]asp.net程序性能优化的七个方面 (c#(或vb.net)程序改进)
  12. 人型自走输入法(网页日语输入法)
  13. 用友U8打开起初采购入库单报错
  14. 加拿大计算机科学薪酬,加拿大最好找工作及薪酬最高的十大专业介绍
  15. 我国南北居民收入差距 正在扩大。
  16. Socket通讯--数据结构WSADATA
  17. Linux安装NVIDIA显卡驱动的正确姿势
  18. Please use torch.load with map_location=torch.device(‘cpu‘),If you are running on a CPU-only machine
  19. “快充”还是感觉慢,到底是什么原因?
  20. C# 绘制直角坐标系

热门文章

  1. python爬虫——爬取拉勾上的职位信息
  2. 自定义控件从入门到轻生之---初尝禁果
  3. nico和niconiconi题解
  4. 数据库服务器压缩文件,服务器数据库怎么压缩文件
  5. 运行单机游戏时,缺少D3DCompiler_43.dll
  6. 中关村修电脑,被坑了
  7. 《神经科学:探索脑》学习笔记(第12章 躯体感觉系统)
  8. 【信息系统项目管理师】2019年上半年信息系统项目管理师上午综合知识真题
  9. DataBaby | 跨服务器异构数据库查询结果整合实验 跨库Table合并 全自助查询、对账系统探路之行
  10. HTML 使用table标签制作个人简历