////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
inline 这个关键字是把函数修饰成内联函数,内联函数要简短,在一行内能写下来的,一般就可以做内联函数!
inline void fun(void) { 函数体 } 像这样,我只是举个例吧!
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
this 这个关键字是类成员函数的一个隐含定义的常量指针,它指向对象自己(至少是我个人的感觉),看看下面的实验:
#include
using namespace std;
class C {
int i;
public:
C() {i=0;}
void Show(void) const {cout<};
int main(void) {
C obj;
obj.Show();
cout<<&obj< return 0;
}
你运行后会看到 obj.Show() 显示 this 指针的地址与 &obj 这个类的地址是一样的,但书上也有一些说话吧,算是我个人的理解吧!
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const 这个关键字,被它修饰的一般是作为常量,是不能改的,我举一些例子吧:
const int i=3;
//锁定变量 i ,就是不能改变 i 的值了,即不能对 i 进行赋值了
const int* ip=i;
//锁定被引用对象的值,就是 i 的值的,不能通过 *ip 这样来改变 i 的值了
int* const ip=i;
//锁定 ip 指针地址的值,不能改变指向了,即不能对 ip 进行赋值了
const int* const ip=i;
//这样就锁定了被引用对象的值,同时也锁定了 ip 指针地址的值
int fun() const;
//这个就是常成员函数了,我就举这些吧
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
mutable 这个关键字吗... ...你看看下面两个程序:
/* 程序1 */
#include
using namespace std;
class C {
int i;
public:
C() {i=0;}
void Show(void) const {i=3;}
};
int main(void) {return 0;}
/* 程序2 */
#include
using namespace std;
class C {
mutable int i;
public:
C() {i=0;}
void Show(void) const {i=3;}
};
int main(void) {return 0;}
/*程序1不通过编译(Show是个常成员函数),而程序2是通过编译的,通过这个实验你可能知道了它的功能吧!
类里面的数据成员,加上mutable后,修饰为const的成员函数就可以修改它。*/
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
小弟说得不好的地方请教 ^-^
--------------------next---------------------
阅读(1102) | 评论(0) | 转发(0) |