const关键字的作用
-
const定义常量,const flaot pi = 3.14; 其值不能被改变。
-
const与指针
常量指针:不能改变指针指向的值,指针可以指向别的变量;
int a,b;
const int *p = &a;
p = &b;
指针常量 :指针常量的值不能被修改,指针指向的值可以被修改;
int a = 5;
int const *p = &a;
*p = 19; -
const 与函数
const int fun(const int & a) const
;
a.修饰形参时,形参不能被改变
b.修饰成员函数时,函数体内不能修改成员变量的值
print()函数,加const后,函数内的成员变量不能被改变void Person::print() const;
4.const常量对象,只能调用const成员函数,不能调用普通成员函数。 Person const *p = new Person()
;、普通对象既可以调用const成员函数,又可以调用普通成员函数
class Person
{
public:
Person() = default;
Person(string name,int age);
void change();
void print() const;
virtual ~Person();
private:
string m_strName;
int m_iAge;
};
Person::Person(string name = "Jim",int age = 19)
{
m_strName = name;
m_iAge = age;
}
void Person::change() {
m_strName = "Jiyacheng";
m_iAge = 123;
}
void Person::print() const {
cout << m_strName << " " << m_iAge << endl;
}
Person::~Person()
{
}
#include "pch.h"
#include <iostream>
#include "Person.h"
using namespace std;
int main()
{
Person const *p = new Person();
//p->change();错误,change()函数不是const,
p->print();
delete p;
p = NULL;
std::cout << "Hello World!\n";
}