const 成员函数和数据成员的使用

    技术2022-05-12  0

    const 成员函数和数据成员的使用

    1   常对象和普通对象都可以调用常成员函数。2   常对象只能调用常成员函数。3   常对象可以访问普通成员数据,但不能改变其值。4   const数据成员只能在类的构造函数的初始化表中进行初始化

    //sample

    class CConst{public: CConst(); ~CConst(); const int m_cnVal; int   m_nVal2;public: int Add(int nA,int nB) const; int Max(int nA,int nB);};

    CConst::CConst():m_cnVal(100){m_nVal2 = 2;};CConst::~CConst(){};

    int CConst::Add(int nA,int nB) const{ printf("Print %d /n",nA+nB); return nA + nB;}int CConst::Max(int nA,int nB){ printf("Max %d /n", (nA>nB)?nA:nB); return (nA>nB)?nA:nB; }

    int main(){ CConst  obj; const CConst  ConstObj;  int nNum1 = 100; int nNum2 = 200; //常对象和普通对象调用常成员函数。 int nTmp = ConstObj.Add(nNum1,nNum2); printf("常对象调用常成员函数    %d + %d = %d /n",nNum1,nNum2,nTmp); nTmp = obj.Add(nNum1,nNum2); printf("普通对象调用常成员函数  %d + %d = %d /n",nNum1,nNum2,nTmp);

     //nTmp = ConstObj.Max(nNum1,nNum2);//错误  常对象只能调用常成员函数。 printf("常对象访问常成员 %d /n",ConstObj.m_cnVal); printf("常对象访问普通成员 %d /n",ConstObj.m_nVal2); printf("普通对象调用常成员 %d /n",obj.m_cnVal); return 0;}

     

     


    最新回复(0)