c++类中的静态成员函数和静态成员变量
来源:互联网 发布:淘宝网首页情侣装 编辑:程序博客网 时间:2024/04/23 17:08
#include <iostream.h>
#include <stdio.h>class Point
{
public:
void output()
{
printf("output====\n");
}
static void init()
{
printf("static====\n");
}
};
class Point2
{
public:
void output()
{
}
static void init()
{
// x = 0;
// y = 0;
}
private:
int x;
int y;
};
class Point3
{
public:
void output()
{
x = 0;
y = 0;
init();
}
static void init()
{
printf("static init!!!!\n");
}
private:
int x;
int y;
};
class Point4
{
public:
void output()
{
}
static void init()
{
x = 0;
y = 0;
printf("static init!!!!\n");
}
private:
static int x;
static int y;
};
class Point5
{
public:
void output()
{
}
static void init()
{
x = 0;
y = 0;
printf("static x=%d,y=%d\n",x,y);
}
private:
static int x;
static int y;
};
int Point5::x = 0;
int Point5::y = 0;
void main(void)
{
/************tese1************/
Point pt;
// pt.init();
// pt.output();
/************test2************/
/*error 编译就会有错误,因为没有实例化一个类的具体对象时,
类没有被分配内存空
*/
// Point::output();
/*编译就不会有错误,因为在类的定义时,
它静态数据和成员函数就有了它的内存区,它不属于类的任何一个具体对象。
*/
// Point::init();
/********test3 for Point2*******/
/*
在一个静态成员函数里错误的引用了数据成员,
还是那个问题,静态成员(函数),不属于任何一个具体的对象,那么在类的具体对象声明之前就已经有了内存区,
而现在非静态数据成员还没有分配内存空间,那么这里调用就错误了,就好像没有声明一个变量却提前使用它一样。
也就是说在静态成员函数中不能引用非静态的成员变量。
*/
// Point2::init();
/*********test4 for Point3******/
/*
这样就不会有任何错误。这最终还是一个内存模型的问题,
任何变量在内存中有了自己的空间后,在其他地方才能被调用,否则就会出错。
*/
// Point3::init();
// Point3 pt3;
// pt3.output();
/*********test5 for Point4******/
/*
可以看到编译没有错误,连接错误,这又是为什么呢?
这是因为静态的成员变量要进行初始化.
*/
// Point4::init();
/*********test6 for Point5******/
Point5::init();
}
0 0
- c++类中的静态成员函数和静态成员变量
- 类中的静态成员变量和静态成员函数
- C++/Java__中类模板中的静态成员变量和静态成员函数
- C/C++静态成员变量和静态成员函数
- c++:静态成员变量和静态成员函数使用问题
- C++ 类中的静态变量和静态成员函数
- C++ 类中的静态变量和静态成员函数
- C++ 类中的静态变量和静态成员函数
- C++ 类中的静态变量和静态成员函数
- 静态成员变量和静态成员函数
- 静态成员函数和静态成员变量
- 静态成员变量 和 静态成员函数
- 静态成员变量和静态成员函数
- 静态成员变量和静态成员函数
- 静态成员变量和静态成员函数
- 静态成员变量和静态成员函数
- 静态成员变量和静态成员函数
- 静态成员变量和静态成员函数
- Android 开发学习记录(1)---- 界面设计
- 安卓开发者必备的42个链接
- Linux 发展编年表
- 类所占内存大小
- 列表、字典、元组、文件——Python
- c++类中的静态成员函数和静态成员变量
- 编程语言 IDE 对比
- 重载与覆盖
- Linux内核链表的研究与应用
- 导航js
- jQuery 将选中的对象转化为原始的DOM对象
- 类、接口简介
- oracle备份表数据更新到原有表
- Vector ArrayList linkedlist set hashtable hashmap concurrenthashmap 的区别