C++ const

来源:互联网 发布:淘宝有多少分可以扣 编辑:程序博客网 时间:2024/06/06 21:41

C++的const用的比较多,所以总结一下。不多说,看下面的例子:


#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
using namespace std;
class ConstClass{
public:
ConstClass():m_cons(1),m_p2(&m_iNum){ m_iNum = 0;}
const void value1(){ m_iNum ++;}
const void value2(){ ++ m_iNum;}
int getvalue1()const{ return m_cons; }
const int getvalue2()const{ return m_iNum; }
void setValue(const int* nCons){m_iNum = *nCons;}
public:
const int m_cons;
int m_iNum;
const int* m_p1;
int* const m_p2;
};
int _tmain(int argc, _TCHAR* argv[])
{
  ConstClass* con = new ConstClass();
  if ( con )
  {
con->value1();
cout << "m_iNum:" << con->m_iNum << endl;
con->value2();
cout << "m_iNum:" << con->m_iNum << endl;
cout << "m_cons:" << con->m_cons << endl;


const int num = con->getvalue2();
cout << "con->getvalue2():" << num << endl;
int val = 10;
con->setValue(&val);
cout << "con->setValue():" << con->m_iNum << endl;


con->m_p1 = &val;
*(con->m_p2) = 111;
cout << "con->m_iNum" << con->m_iNum << endl;
delete con;
  }
system("pause");
return 0;
}


一、

const int m_cons;  // m_cons不可以改变其值
const int* m_p1;  // *m_p1为const不可改变值但可以改变m_p1
int* const m_p2;  // m_p2为const不可以改变其值,*m_p2可以改变

二、 类中定义的const变量要在类的构造函数中对其初始化,方式如:

ConstClass():m_cons(1),m_p2(&m_iNum){ m_iNum = 0;}

三、

int getvalue1()const{ return m_cons; }  // 后面加const,则函数getvalue1不可以改变类中的数据。

四、

onst int getvalue2()const{ return m_iNum; } // 第一个const没用,因为是返回值;第二个const的作用也是函数getvalue2不可以改变类中的数据。

五、程序运行结果:





0 0
原创粉丝点击