C++静态数据成员/静态函数成员总结
来源:互联网 发布:ubuntu elk 搭建 编辑:程序博客网 时间:2024/05/29 04:07
++静态数据成员/静态函数成员总结
一、静态数据成员
1.几种错误用法总结
class A
{
static int a;
void test()
{
int b = a;//错误,因为没有定义a,会提示找不到a
}
}
1.几种错误用法总结
class A
{
static int a;
void test()
{
int b = a;//错误,因为没有定义a,会提示找不到a
}
}
class A
{
static int a = 2;//错误,非const静态数据成员不能在类体中初始化
}
{
static int a = 2;//错误,非const静态数据成员不能在类体中初始化
}
class A
{
static const int a = 2;
void test()
{
int b = a;//错误,虽然static const成员变量可以再类体中初始化,但仍需
{
static const int a = 2;
void test()
{
int b = a;//错误,虽然static const成员变量可以再类体中初始化,但仍需
要在类外定义,且不能再次初始化
}
}
}
}
const A::a[4];
class A
{
static const char a[4] = "err";//错误,只有有序的const静态数据成员可在类
class A
{
static const char a[4] = "err";//错误,只有有序的const静态数据成员可在类
体中初始化
}
}
2.正确用法例子:
int A::a = 2;
const int A::b;
const int A::c("err");
class A
{
static int a;
static const int b = 2;
static const char c[5];
}
int A::a = 2;
const int A::b;
const int A::c("err");
class A
{
static int a;
static const int b = 2;
static const char c[5];
}
3.可以通过const方法修改静态数据成员的值。
如果是public静态数据成员,也可以通过对象或者类域修改。
如果是public静态数据成员,也可以通过对象或者类域修改。
4.静态数据成员所有类共享,包括子类
5.不要在头文件中定义静态数据成员,否则可能会出现多次定义情况。
6.静态数据成员可以成为成员函数的可选参数,而普通数据成员则不可以
7.静态数据成员的类型可以是所属类的类型,而普通数据成员则不可以。普通数据成员
的只能声明为所属类类型的指针或引用
class A
{
static A a;//可以
A b;//不可以
}
class A
{
static A a;//可以
A b;//不可以
}
二、静态函数成员
1.只能访问静态数据成员
2.静态成员函数不能同时声明成const, virtual,volatile类型。
3.静态成员函数的地址可用普通函数指针储存,而普通成员函数地址需要用类成员函数
指针来储存。
class A
{
static int func1();
int func2();
}
class A
{
static int func1();
int func2();
}
int (*psf)() = &A::func1;
int (A::*pf)() = &A::func2;
int (A::*pf)() = &A::func2;
- C++静态数据成员/静态函数成员总结
- C++静态数据成员/静态函数成员总结
- static(c++)静态数据成员和静态成员函数
- c++:静态函数成员与静态数据成员
- 3-6 静态数据成员与静态成员函数(c++)
- C++_静态数据成员和静态成员函数
- 静态成员函数总结
- 静态成员函数总结
- 静态成员函数与静态数据成员
- 静态成员函数 与 静态数据成员
- static 静态数据成员 静态成员函数
- 静态数据成员和静态成员函数
- 静态成员函数与静态数据成员
- 静态数据成员和静态成员函数
- C++ 静态数据成员 静态成员函数
- 静态数据成员与静态成员函数
- 静态成员数据和静态成员函数
- 静态数据成员和静态成员函数
- Xmanager连接Linux远程桌面(图文详解+亲自测试)
- MFC定时器实现类似QQ桌面自动隐藏效果
- 栈的应用 算术表达式的计算
- c++的经典题型,课后习题
- 让你的C++代码变的更加健壮
- C++静态数据成员/静态函数成员总结
- Silverlight 4 项目资源文件的Build Action
- Happy Hacking+德沃夏克
- C# PropertyGrid 演练一
- 如何学好c++类库
- c++常见函数解析
- linux oom killer
- 6.087 Practical Programming in C, lec12
- 关于工商银行网站打不开的问题终极解决办法