静态成员与静态成员函数
时间:2011-01-02 来源:mrchenlang
最近在学习Qt,Qt的类中有很多地方用到静态成员函数,索性自己总结一下!
1.C++为什么要引入静态数据成员?
答:如一个Student类,要记录学生的人数,这时最好就是用静态成员。静态成员不属于类的对象,它是属于类本身的,所以它的实现一般放在类实现文件中。
例子:
Student
{
protected:
static int noOfStudents;
static void test();
};
int Student::noOfStudents = 0;
2.为什么要引入静态成员函数? 答:(我的理解) 与静态数据成员一样,静态成员函数也不属于某个对象,它也是类本身的。类的对象在访问静态成员函 数时,只是用到了它的类型。 **静态成员函数不属于对象,所以不能访问类的普通数据成员,因为这样不知道调用的哪个对象的数据成员。 另外,静态成员函数可以直接访问:Student::test();不必定义对象,就可以用。
3.静态成员与普通成员函数的区别? 答:最根本的区别是,普通成员函数会有一个隐藏的this指针,而静态成员函数则没有。 4.成员函数与静态成员函数在内存的布局? 答:这个是重点,但暂时还没研究到! 待续.....
2.为什么要引入静态成员函数? 答:(我的理解) 与静态数据成员一样,静态成员函数也不属于某个对象,它也是类本身的。类的对象在访问静态成员函 数时,只是用到了它的类型。 **静态成员函数不属于对象,所以不能访问类的普通数据成员,因为这样不知道调用的哪个对象的数据成员。 另外,静态成员函数可以直接访问:Student::test();不必定义对象,就可以用。
3.静态成员与普通成员函数的区别? 答:最根本的区别是,普通成员函数会有一个隐藏的this指针,而静态成员函数则没有。 4.成员函数与静态成员函数在内存的布局? 答:这个是重点,但暂时还没研究到! 待续.....
相关阅读 更多 +