1 静态成员的定义

1 静态变量

c++在类里面进行的仅是引用性声明,不会为之分配内存,要求必须单独对静态数据成员进行定义性的声明。形式为:

类型 类名::静态数据成员名;

此时的定义需要再加关键字static,并且可以在定义时初始化。

c++要求类中成员变量不可以直接初始化,可以采用定义函数方法时后挂变量方式初始化。

这与Java不同。

2 静态函数

定义方式与静态变量同。函数的定义可以在类内也可以在类外。

class A
{
public:
A(int y)
{
a=y;
cout<<a+x<<endl;
}
//static int x;
static void B(int z)
{
x=z;
cout<<a<<"hehe"<<endl;
}
private:
int a;
static int x;
}; int A::x=;
void A::B(int z); int main()
{
//A::x=2;
A a1();
a1.B();
return ;
}

2 访问限制说明

静态函数可以直接访问静态变量,但不可直接访问非静态成员,若要访问非静态成员,则必须借助于对象名或者指向对象的指针。

非静态函数可以直接访问静态变量和非静态变量。

这个特点与Java同。

c++静态成员与静态函数的更多相关文章

  1. C++静态成员函数访问非静态成员的几种方法

    大家都知道C++中类的成员函数默认都提供了this指针,在非静态成员函数中当你调用函数的时候,编译器都会“自动”帮你把这个this指针加到函数形参里去.当然在C++灵活性下面,类还具备了静态成员和静态 ...

  2. C++ 类的静态成员变量及静态成员函数

    ps:下面所说 成员=成员变量+成员函数: 作用 由于对象与对象之间的成员变量是相互独立的.所以要想共用数据,则需要使用静态成员和静态函数. 空间分配 静态成员是在程序编译时分配空间,而在程序结束时释 ...

  3. C++类静态数据成员与类静态成员函数

    from:://http://blog.csdn.net/taina2008/article/details/1684834 把类中的函数都定义成静态函数,这样相当于在编译时就分配了空间,这样不需要实 ...

  4. c++——静态成员变量成员函数

    静态成员变量成员函数 思考:每个变量,拥有属性.有没有一些属性,归所有对象拥有? 4.1静态成员变量 1)定义静态成员变量 关键字 static 可以用于说明一个类的成员, 静态成员提供了一个同类对象 ...

  5. java初始化深度剖析

    当用一个类来创建对象的时候,JVM会帮我们执行下面的6个步骤. 1.在磁盘上找到对应内的class文件: 2.加载class文件到内存,初始化所有静态域(成员变量和方法): 3.如果使用new cla ...

  6. C++程序员笔试复习概要(一)

    第8章     类和对象的创建 [内容提要] 类和对象 构造函数和析构函数 对象数组与对象指针 静态成员 友元 静态函数 虚函数 [重点与难点] 8.1 类和对象 8.1.1 类的定义 类实质上是用户 ...

  7. C#基础篇02

    首先:一个完整的方法是包括两部分的,代码和注释!!!! 程序的调试: 3:设置断点:  断点之前的程序已经确保正确,可是在断点后的部分可能出现错误,所以设置完断点后,直接点击启动,然后按F11逐步棸的 ...

  8. java泛型探索——泛型类

    本文主要讨论一下如何声明泛型类,讨论的范围涉及构造函数.静态成员.内部类. 构造函数 泛型的类型参数首先声明在首部: public class Pair<T,U> { private fi ...

  9. 面试基础知识集合(python、计算机网络、操作系统、数据结构、数据库等杂记)

    python python _.__.__xx__之间的差别 python中range.xrange和randrange的区别 python中 =.copy.deepcopy的差别 python 继承 ...

随机推荐

  1. UltraEdit (Ctrl + F) 查找、(Ctrl + R)替换功能失效

    环境: Windows 7 Service Pack 1 X64 工具: UltraEdit Version 21 症状: UltraEdit (Ctrl + F) 查找.(Ctrl + R)替换功能 ...

  2. hdu4323Magic Number(dp)

    http://acm.hdu.edu.cn/showproblem.php?pid=4323 去年的多校 编辑距离的变形 暴力居然过了 还想了好久别的方法,想得很头疼 #include <ios ...

  3. c#继承中的函数调用

    首先看下面的代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 using System;   namespace Test {     public cl ...

  4. (转载)file_get_contents("php://input")

    (转载)http://taoshi.blog.51cto.com/1724747/1165499 $data = file_get_contents("php://input"); ...

  5. [POJ2234]Matches Game

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9297   Accepted: 5365 Description Here ...

  6. 【原】Spark on YARN

    在YARN上运行Spark 在Spark0.6.0版本开始支持YARN模式,随后的版本在逐渐地完善. 在YARN上启动Spark 确保HADOOP_CONF_DIR或YARN_CONF_DIR属性的值 ...

  7. 搭建集群必备:windows如何使用Xshell远程连接(SSH)Linux

    出处about云(http://www.aboutyun.com/blog-61-22.html)欢迎访问我的博客 首先介绍一下环境: (主机)操作系统:win7 虚拟机:vmware worksta ...

  8. SQL Server Data Tool 嘹解(了解)一下 SSDT -摘自网络

    Visual Studio 2010 的伺服器管理員可以用來連接 Sharepoint.伺服器,還可以透過資料連接連結至 SQL Server  等資料來源.以資料來源為例,您可以利用單一工具(Vis ...

  9. 授权给adfs读取ad 在ad服务器上运行 - setspn 命令 -摘自网络

    Because the application pool identity for the AD FS 2.0 AppPool is running as a domain user/service ...

  10. HDU5627--Clarke and MST (bfs+位运算)

    http://www.cnblogs.com/wenruo/p/5188495.html Clarke and MST Time Limit: 2000/1000 MS (Java/Others) M ...