静态成员 内联成员函数 const对象和const成员函数
来源:互联网 发布:八年级行知天下答案 编辑:程序博客网 时间:2024/05/21 21:42
1 静态成员
static数据成员
(1) static数据成员属于类,而不属于对象;
(2)static数据成员也是具有访问限制的;
在类外只能访问公有的static数据成员,且访问方式为:
类名::static公有数据成员
在类内可以访问所有的static数据成员,采用直接访问的方式。
(3) 若要初始化类的static数据成员,一般是在类定义之外进行。初始化的方式为:
type 类名::static数据=初始值;
static成员函数
(1)成员函数也能被说明为静态的。静态成员函数没有this指针。静态成员函数只属于一个类。
因此,在类外调用一个公有静态函数,方式为:
类名::静态公有成员函数名(实参表)
而在类内,采用直接调用静态成员函数(包括公有的和私有的)的方式。
(2)静态成员函数没有this指针,因此,若在静态成员函数中访问非静态成员时,必须明确指出该静态成员函数在哪个对象上操作。
(3)因为STATIC成员不是任何对象的组成部分,所以STATIC成员函数不能被声明为const。
(4)STATIC函数也不能被声明为虚函数。
2 内联成员函数
在C++中,宏的概念是作为内联函数来实现的,而内联函数无论在任何意义上都是真正的函数。唯一不同之处是内联函数在适当的地方像宏一样展开,所以不需要函数调用的开销。因此,应该永远不使用宏,只使用内联函数。但为了使之有效,必须使函数体和声明结合在一起。
任何在类中定义的函数自动地成为内联函数,但也可以使用inline关键字放在类外定义的函数前面使之成为内联函数。
3 const对象和const成员函数
某些对象是需要修改的,而有些对象是不需要修改的。我们把那些不需要修改的对象称为const对象。例如:
const Date dt(2004,1,1);
声明了类Date的一个const对象,并把该对象初始化为2004年1月1日的时间。
一个const对象只能访问const成员函数。
类的成员函数可以通过加const来限定函数对对象的数据成员的修改。定义的方式是在函数头的参数表后面加上const。例如:
class Date
{
…
public:
int GetYear( ) const
{
return year;
}
…
};
对于在类体之外定义的const 成员函数,必须在它的定义和声明中同时指定关键字const。
把一个要修改类数据成员的函数声明为const 是非法的,例如:
class Date
{
…
public:
int GetYear( ) const
{
year=2004; //错误!
}
…
};
一个const成员函数调用const和非const对象是安全的,不修改数据成员的任何函数都应该把它们声明为const,这样它可以和const对象一起使用。
应该注意的是,构造函数和析构函数肯定是要修改对象的。
- 静态成员 内联成员函数 const对象和const成员函数
- 静态成员 内联成员函数 const对象和const成员函数
- const成员函数和对象
- const对象const成员函数
- const对象和const成员函数
- const对象和const成员函数
- const对象和const成员函数
- const 对象和 const 成员函数
- const对象和const成员函数
- 静态数据成员 静态函数成员 以及 const 成员变量
- Const---【const对象和const成员函数及const成员属性总结】
- const对象调用非const成员函数
- const成员函数与const对象
- const对象与const成员函数
- const成员函数与const对象
- const对象,const成员函数总结
- const修饰成员函数const修饰对象
- this指针?const函数?const对象成员?
- You could try using --skip-broken to work around the problem
- 雷锋读图:移动互联网时代 “移动优先”才是王道
- 国内用户体验较好网站
- Xcode4.2中将Three20开源库导入到工程项目中
- bat按任意键开始结束的脚本
- 静态成员 内联成员函数 const对象和const成员函数
- shellcode的隐藏运行
- boa移植
- 为什么存在mysql中的某一列的值全是MEMO
- 付款了,但是后台显示注册的名字,但是却没有单
- Java读取Properties文件的六种方法
- android自定义dialog
- jQuery中的mouseenter和mouseleave事件
- C#将设置开机、关闭开机启动项