深入浅析c/c++ 中的static关键字

 更新时间:2018年08月20日 14:43:23   作者:小石王  
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。本文重点给大家介绍c/c++ 中的static关键字,感兴趣的朋友跟随小编一起看看吧

static关键字

1,static 成员变量

static 成员变量不随着对象的创建而开辟内存空间。也就是说,不管从哪个对象去看static成员变量,都是一样的。

2, static 成员方法

static 成员方法里不可以调用非static 成员方法。

非static 成员方法里可以调用static 成员方法。

原因:非static 成员方法里是没有this指针的,所以在里面调用非static 成员方法时,无法传递this指针。static 成员方法不需要this指针。

重点:初始化static成员变量,要在类的外面。

#include <iostream>
using namespace std;
class Test{
 friend void fun(const Test &t);
public:
 Test(int d = 0) : data(d){
  count++;
 }
 ~Test(){
  count--;
 }
private:
 int data;
 static int count;
};
void fun(const Test &t){
 cout << t.data << endl;
 cout << Test::count << endl;
}
//初始化static成员变量 
int Test::count = 0;
int main(){
 //int Test::count = 0;//编译不过,必须在外面初始化static成员变量
 //Test::count = 0;//编译不过,必须在外面初始化static成员变量
 Test t(10);
 fun(t);
 Test t1(11);
 fun(t1);
}

总结

以上所述是小编给大家介绍的c/c++ 中的static关键字,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 关于VS2022不能使用<bits/stdc++.h>的解决方案(万能头文件)

    关于VS2022不能使用<bits/stdc++.h>的解决方案(万能头文件)

    #include<bits/stdc++.h>包含了目前 C++ 所包含的所有头文件,又称万能头文件,那么如何在VS2022中使用万能头呢?下面小编给大家代理了关于VS2022不能使用<bits/stdc++.h>的解决方案(万能头文件),感兴趣的朋友一起看看吧
    2022-03-03
  • C语言入门学习之fgets()函数和fputs()函数

    C语言入门学习之fgets()函数和fputs()函数

    fgetc() 和 fputc() 函数每次只能读写一个字符,速度较慢,实际开发中往往是每次读写一个字符串或者一个数据块,这样能明显提高效率,这篇文章主要给大家介绍了关于C语言入门学习之fgets()函数和fputs()函数的相关资料,需要的朋友可以参考下
    2021-11-11
  • 利用C++ R3层断链实现模块隐藏功能

    利用C++ R3层断链实现模块隐藏功能

    在R3层的模块隐藏,我们需要做的就是将其该链表断链,将某一模块从这个双向链表中摘除,这样再调用传统的API时就会搜索不到。本文重点给大家介绍利用C++ R3层断链实现模块隐藏功能,感兴趣的朋友一起看看吧
    2019-10-10
  • 浅谈Linux环境下并发编程中C语言fork()函数的使用

    浅谈Linux环境下并发编程中C语言fork()函数的使用

    fork函数在Linux中可以创建子进程即一个新的进程,这里我们根据实例来浅谈Linux环境下并发编程中C语言fork()函数的使用,需要的朋友可以参考下
    2016-06-06
  • C++整数拼接技巧大揭秘

    C++整数拼接技巧大揭秘

    C++整数拼接技巧大揭秘,让你的代码更简洁高效!你是否还在为如何优雅地将整数拼接成字符串而烦恼?本指南将为你揭示C++中最实用、最酷炫的整数拼接技巧,助你提升编程技能,需要的朋友可以参考下
    2024-03-03
  • C++的原生数组你了解多少

    C++的原生数组你了解多少

    这篇文章主要为大家详细介绍了C++的原生数组,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • C语言中文件处理全攻略详解

    C语言中文件处理全攻略详解

    这篇文章主要为大家详细介绍了C语言中文件处理的相关知识,包括创建、写入、追加操作解析,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2024-01-01
  • C++设计模式之观察者模式

    C++设计模式之观察者模式

    这篇文章主要介绍了C++设计模式之观察者模式,本文讲解了什么是观察者模式、观察者模式的UML类图、观察者模式的使用场合等内容,需要的朋友可以参考下
    2014-10-10
  • C语言使用普通循环方法和递归求斐波那契序列示例代码

    C语言使用普通循环方法和递归求斐波那契序列示例代码

    这篇文章主要介绍了C语言使用普通循环方法和递归求斐波那契序列示例代码,大家参考使用吧
    2013-11-11
  • c++string字符串的比较是否相等问题

    c++string字符串的比较是否相等问题

    这篇文章主要介绍了c++string字符串的比较是否相等问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论