C++中static数据成员详解

    本文和大家分享的主要是c++中static数据成员的相关用法及源码示例,希望能帮助大家更好的学习C++。

  static(静态存储)数据成员

  StaticTest.cpp : 定义控制台应用程序的入口点。

  1.知识点

  static(静态存储)数据成员:编译时就被创建和初始化。

  2.代码

  #include "stdafx.h"

  #include

  using namespace std;

  class computer

  {

  private:

  float price;

  public:

  static float total_price;//static数据成员 向编译器描述:如何为static数据成员分配内存

  computer(const float p)

  {

  price = p;

  total_price += p;

  }

  ~computer()

  {

  total_price -= price;

  }

  void print()

  {

  cout<<"总价:"<<total_price<<endl;

  }

  };

  float computer::total_price = 0;//真正的内存分配

  int _tmain(int argc, _TCHAR* argv[])

  {

  computer comp1(7000);

  cout<<"购买电脑1后"<<endl;

  //comp1.print();

  cout<<computer::total_price<<endl;;

  computer comp2(4999);//

  cout<<"总价:"<<"购买电脑2后"<<endl;

  comp1.print();

  computer comp3(2500);

  cout<<"购买电脑3后"<<endl;

  comp1.print();

  //推掉电脑2

  comp2.~computer();

  cout<<"退掉电脑2后"<<endl;

  comp1.print();

  return 0;

  }

  3.运行结果

原文链接:http://www.maiziedu.com/wiki/cplus/data/

时间: 2024-09-29 00:49:30

C++中static数据成员详解的相关文章

c++中static的用法详解

欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/45290467 C 语言的 static 关键字有三种(具体来说是两种)用途: 1. 静态局部变量:用于函数体内部修饰变量,这种变量的生存期长于该函数. int foo(){ static int i = 1; // note:1 //int i = 1; // note:2 i += 1; return i; } 要明白这个用法,我们首先要了解c/c++的内存分

【转载】 c++中static的用法详解

出处: http://blog.csdn.net/majianfei1023/article/details/45290467 C 语言的 static 关键字有三种(具体来说是两种)用途: 1. 静态局部变量:用于函数体内部修饰变量,这种变量的生存期长于该函数.. int foo(){ static int i = 1; // note:1 //int i = 1; // note:2 i += 1; return i; } 要明白这个用法,我们首先要了解c/c++的内存分布,以及static

java中static{}语句块详解

1.当一个类中有多个static{}的时候,按照static{}的定义顺序,从前往后执行: 2.先执行完static{}语句块的内容,才会执行调用语句: 示例二 public class TestStatic{    static{        System.out.println(1);    }    static {        System.out.println(2);    }    static {        System.out.println(3);    }    p

C++类中的static数据成员,static成员函数

C++类中谈到static,我们可以在类中定义static成员,static成员函数!C++primer里面讲过:static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!这句话可能比较拗口,其实可以这么理解:每个static数据成员可以看成是类的一个对象,而不与该类定义的对象有任何关系!下面我们就来具体看看类中的static数据成员! 谈到数据成员,我们最先想到的应该是怎么去定义一个static数据成

Java下static关键字用法详解

Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static 可以修饰: 1. 语句块 2. 成员变量(但是不能修饰局部变量) 3. 方法 4. 接口(内部接口) 5. 类(只能修饰在类中的类, 即静态内部类) 6. jdk 1.5 中新增的静态导入 那么static 修饰的表示什么呢? 当创建一个类时,就是在创建一个新类型,描述这个类的对象的外观和行为,除

linux-2.6.26内核中ARM中断实现详解(转)

转载:http://www.cnblogs.com/leaven/archive/2010/08/06/1794293.html 更多文档参见:http://pan.baidu.com/s/1dDvJRaD 作者:刘洪涛,华清远见嵌入式学院金牌讲师,ARM ATC授权培训讲师. 看了一些网络上关于linux中断实现的文章,感觉有一些写的非常好,在这里首先感谢他们的无私付出,然后也想再补充自己对一些问题的理解.先从函数注册引出问题吧. 一.中断注册方法 在linux内核中用于申请中断的函数是req

ava下static关键字用法详解

Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static 可以修饰: 1. 语句块 2. 成员变量(但是不能修饰局部变量) 3. 方法 4. 接口(内部接口) 5. 类(只能修饰在类中的类, 即静态内部类) 6. jdk 1.5 中新增的静态导入 那么static 修饰的表示什么呢? 当创建一个类时,就是在创建一个新类型,描述这个类的对象的外观和行为,除

C#中string用法实例详解

在进行C#程序设计时,用的最多的莫过于string了,但有些时候由于不仔细或者基础的不牢固等因素容易出错,今天本文就来较为详细的总结一下C#中string的用法.具体如下: 1.string是一个引用类型,平时我们比较string对象,比较的是对象的值而不是对象本身 如下面代码所示: string strA="abcde"; string strB="abc"; string strC="de"; Console.WriteLine(strA =

JQuery中$.ajax()方法参数详解

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求. 如果需要发送同步请求,请将此选项