什么儿童奶粉好,东宁县政府网,养鸡用铁丝网
this
指针参数静态成员变量&静态成员函数本质上是全局变量,与该类有关,但不与调用它的对象直接相关
即使没有创建对象,静态成员也存在,被所有对象共享
调用方法
静态变量必须声明或初始化,否则链接时会报错
静态成员函数内不可使用非静态成员变量及非静态成员函数
#include <iostream> using namespace std; class rectangle{ private: int w,h; static int totalarea,totalnum; public: rectangle(int w_,int h_):w(w_),h(h_){ totalnum++; totalarea+=w*h; } rectangle(rectangle &r){ w=r.w; h=r.h; totalnum++; totalarea+=w*h; } ~rectangle(){ totalnum--; totalarea-=w*h; } static void printtotal(){ cout<<totalnum<<", "<<totalarea<<endl; } }; int rectangle::totalnum; //必须对类的静态变量进行声明或初始化, int rectangle::totalarea; //否则链接不通过 int main(){ rectangle a(2,2),b(4,5); rectangle::printtotal(); a.printtotal(); //结果与对象a无关 return 0; }
常量成员对象:成员对象前面加const
关键字,初始化后便不能改变值
常量对象只能调用常量成员函数
常量成员函数:成员函数后面加上const
关键字,保证调用对象值在函数中不会被改变
常量成员函数内不能改变成员变量值(静态成员对象除外),不能调用同类非常量成员函数 (静态成员函数除外)
常引用:保证引用参数在函数运行中值不被改变
void func(const stu &a)const{}
因为封闭类构造时可能用到成员对象
先构造的后析构
因为非常量成员函数可能改变成员变量值
不能传递指:如果a是b的友元,b是c的友元,不能推导出a是c的友元
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论