读书笔记--static类成员
2007-03-12 22:30
120 查看
static数据成员独立于该类的任意对象存在,每个数据成员是与该类关联的对象,并不是与该类的对象相关联.
例如,static数据成员的类型可以是该成员所属的类类型,非static成员被限定声明为其自身类对象的指针或引用.
class Bar
{
private:
static Bar men1;//OK
Bar *men2;//OK
Bar men3;//error
};
static数据成员可做默认实参,非static数据成员不能做默认实参,它的值不能独立于所属兑现而使用.
class Screen
{
public:
Screen &Clear( char=background );
private:
static const char background='#';
};
static函数没有this指针:因为static成员是类的组成部分但不是任何对象的组成部分.通过使用非static成员现实或隐式地引用this是一个编译时错误.
static数据成员必须在类定义体的外部定义,因为static成员不是通过类构造函数进行初始化而是自定义进行的.但有个特殊:const static成员只要初始化式是一个常量表达式,就在类的定义体中进行初始化.
class Account
{
private:
static int interest_rate;
static const int period=30;//static const
};
int Account::inetest_rate=10;//static
const int Account::peried;//static const
一个类的静态成员函数不能相非静态成员函数那样"默认调用"它的非静态成员函数(因为静态成员函数没有隐含的this指针)在一个类的静态成员函数中,只要通过某种方式得到了一个指向本类型的对象的指针,并且有合适的access level.就可以对此对象调用其非静态成员函数.
作用:
1.可以用来保存对象的个数
2.作为标记,标记一些动作是否发生.比如:文件的打开状态
3.存储.链表的第一个或者最后一个的内存地址
例如,static数据成员的类型可以是该成员所属的类类型,非static成员被限定声明为其自身类对象的指针或引用.
class Bar
{
private:
static Bar men1;//OK
Bar *men2;//OK
Bar men3;//error
};
static数据成员可做默认实参,非static数据成员不能做默认实参,它的值不能独立于所属兑现而使用.
class Screen
{
public:
Screen &Clear( char=background );
private:
static const char background='#';
};
static函数没有this指针:因为static成员是类的组成部分但不是任何对象的组成部分.通过使用非static成员现实或隐式地引用this是一个编译时错误.
static数据成员必须在类定义体的外部定义,因为static成员不是通过类构造函数进行初始化而是自定义进行的.但有个特殊:const static成员只要初始化式是一个常量表达式,就在类的定义体中进行初始化.
class Account
{
private:
static int interest_rate;
static const int period=30;//static const
};
int Account::inetest_rate=10;//static
const int Account::peried;//static const
一个类的静态成员函数不能相非静态成员函数那样"默认调用"它的非静态成员函数(因为静态成员函数没有隐含的this指针)在一个类的静态成员函数中,只要通过某种方式得到了一个指向本类型的对象的指针,并且有合适的access level.就可以对此对象调用其非静态成员函数.
作用:
1.可以用来保存对象的个数
2.作为标记,标记一些动作是否发生.比如:文件的打开状态
3.存储.链表的第一个或者最后一个的内存地址
相关文章推荐
- 《c++ prime》读书笔记--static类成员的用法
- 《c++ prime》读书笔记--static类成员的用法
- Static类成员(二)
- 明明白白c++之类的基本操作(c++ primer 的读书笔记 ,类对象, 类用户, 类成员的含义)
- 读书笔记《Effective C++》条款22:将成员变量声明为private
- Static类成员
- 《CLR via C#》读书笔记---06 类型和成员基础
- 读书笔记--struct的成员对齐
- [读书笔记]类继承时不同类型成员函数的表现
- 读书笔记 effective c++ Item 45 使用成员函数模板来接受“所有兼容类型”
- static类成员
- C++细节——static类成员使用注意
- C++细节——static类成员使用注意
- C++中static类成员
- 读书笔记《Effective c++》 条款22 将成员变量声明为private
- C++ static类成员
- 构造函数,友元,static类成员,复制控制
- Static类成员
- [转]《Java Generics and Collections》读书笔记四:构造函数,静态成员,嵌套类
- thinking in c++读书笔记--类的静态数据成员的定义的连接属性:外部连接属性