static关键字使用注意事项
2014-06-26 14:57
288 查看
一:使用类的static成员的优点
1:static成员的名字是在类的作用域中,因此可以避免与其他类的成员或者全局对象名字的冲突
2:可以实施封装。static成员可以是私有成员,而全局对象不可见
3:通过阅读程序容易看出来static成员与特定类关联的。
二:static成员的定义
static成员遵循正常的共有/私有访问规则,不过都可以通过 classname::成员 进行访问,不论成员是私有还是共有
三:使用类的static成员
对类的static成员的使用以下几种方式都可以 通过classname::成员 通过class对象.成员 通过class对象引用.成员
通过class对象指针->成员 不论是static成员函数还是static数据成员都可以这样使用
四:static函数没有this指针
因为static成员是类的组成部分而不是任何对象的组成部分
五:static成员的声明和定义
一般来说我们在类的作用与范围内只是声明static成员,并不进行定义
对static成员函数的声明和定义遵循以下规则
1:在类A中声明static成员get()
class A{
public:
static void get();
};
2:对static成员函数的定义放在类的函数定义中,但是必须要去掉关键字static
static void A::get(){} //这是错误的
void A::get(){} //这是对的
对static数据成员的定义遵循以下规则
1:static数据成员在类的作用域范围内是声明,static数据成员的定义必须放在类的作用域外面
并且对static数据成员的定义要单独,不能把它放到类的某一个函数定义中去
class A{
public:
void set();
private:
static int n;
};
void A::set()
{
int A::n=10; //这是错误的
}
/********/
int A::n=10; //这是对的,要对它单独定义
2: 对const static数据成员必须在声明是对它进行赋值,在类作用域外部对不对它在进行定义都无所谓,但提倡在定义
class A{
public:
const static int n=10;
}
const int n; //对const static数据成员的在定义
六:最重要的一点,在static成员函数中,只能使用类的static成员(包括static数据成员和static成员函数)
1:static成员的名字是在类的作用域中,因此可以避免与其他类的成员或者全局对象名字的冲突
2:可以实施封装。static成员可以是私有成员,而全局对象不可见
3:通过阅读程序容易看出来static成员与特定类关联的。
二:static成员的定义
static成员遵循正常的共有/私有访问规则,不过都可以通过 classname::成员 进行访问,不论成员是私有还是共有
三:使用类的static成员
对类的static成员的使用以下几种方式都可以 通过classname::成员 通过class对象.成员 通过class对象引用.成员
通过class对象指针->成员 不论是static成员函数还是static数据成员都可以这样使用
四:static函数没有this指针
因为static成员是类的组成部分而不是任何对象的组成部分
五:static成员的声明和定义
一般来说我们在类的作用与范围内只是声明static成员,并不进行定义
对static成员函数的声明和定义遵循以下规则
1:在类A中声明static成员get()
class A{
public:
static void get();
};
2:对static成员函数的定义放在类的函数定义中,但是必须要去掉关键字static
static void A::get(){} //这是错误的
void A::get(){} //这是对的
对static数据成员的定义遵循以下规则
1:static数据成员在类的作用域范围内是声明,static数据成员的定义必须放在类的作用域外面
并且对static数据成员的定义要单独,不能把它放到类的某一个函数定义中去
class A{
public:
void set();
private:
static int n;
};
void A::set()
{
int A::n=10; //这是错误的
}
/********/
int A::n=10; //这是对的,要对它单独定义
2: 对const static数据成员必须在声明是对它进行赋值,在类作用域外部对不对它在进行定义都无所谓,但提倡在定义
class A{
public:
const static int n=10;
}
const int n; //对const static数据成员的在定义
六:最重要的一点,在static成员函数中,只能使用类的static成员(包括static数据成员和static成员函数)
相关文章推荐
- java 中关键字 static的使用及注意事项
- static 关键字 成员变量和静态变量的区别 静态使用的注意事项 静态代码块 构造代码块
- java static关键字 以及使用注意事项
- 由static关键字引发的知识点学习和在类中的使用相关注意事项
- static关键字:解决的问题,在内存中的特点和使用注意事项
- C++中typename关键字的使用方法和注意事项
- 关于常见的变量修饰符: const, static, extern, register, auto 的详细解释,使用场合以及注意事项
- android 使用static 变量注意事项
- javascript中关键字in以及循环for...in的使用和注意事项
- C++中typename关键字的使用方法和注意事项
- static关键字注意事项
- C++中typename关键字的使用方法和注意事项
- 简述static,final,abstract三者的使用场景与注意事项
- C++中typename关键字的使用方法和注意事项
- This Handler class should be static or leaks might occur,Handler和Context使用的注意事项!
- C++中typename关键字的使用方法和注意事项
- iOS Static Library使用注意事项(category无法使用等)
- C++中typename关键字的使用方法和注意事项
- C++ typename 关键字的使用方法和注意事项
- C++中typename关键字的使用方法和注意事项