如何在C++中使用const
时间:2020-02-23 14:29:54 来源:igfitidea点击:
在本教程中,我们将重点介绍C++中的const。
C++中const的基础
C++有大量的关键字,可以帮助我们整体上为数据变量提供特殊功能。
C++中的const使特定的数据实体成为一个常数,即在整个程序范围内,const变量的值保持不变。
在实际情况下,const关键字对于在使用过程中将特定值锁定为静态和常量非常重要。
让我们举个例子。
对于自动电子邮件系统,其中的所有者希望在每个月的最后日期向其员工发送邮件,所有者的电子邮件地址将保持不变。
因此,我们可以声明一个变量来保存所有者的电子邮件地址,并使用const关键字使其保持不变。
因此,我们实际上将节省时间并降低系统的复杂性。
C++中const的变体
C++中的const关键字可以与编程的不同数据实体一起使用,例如:
- 资料变数
- 函数参数
- 指针
- 类的对象
- 类数据成员
1.数据变量为const
当数据变量声明为const时,等于该变量的值被视为常量并且是不可变的。
语法:
const data-type variable = value;
例:
#include<iostream>
using namespace std;
int main()
{
const int A=10,B=20;
cout<<"Addition: "<<(A+B);
}
输出:
Addition: 30
如果我们尝试更改或者操纵const数据变量的值,则编译器将引发错误,表明我们无法将值分配给只读变量。
#include<iostream>
using namespace std;
int main()
{
const int A=10;
A+=10;
cout<<A;
}
输出:
main.cpp: In function ‘int main()’: main.cpp:6:8: error: assignment of read-only variable ‘A’ A+=10;
2.函数参数在C++中为const
我们甚至可以将一个参数分配给函数/方法作为常量,从而将所有更改限制在该函数参数上。
语法:
data-type function(const data-type variable)
{
//body
}
例:
#include<iostream>
using namespace std;
int add(const int x)
{
int res=0;
int error=20;
res = x+error;
return res;
}
int main()
{
int ans = add(50);
cout<<"Addition:"<<ans;
}
输出:
Addition:70
如下所示,如果我们尝试操纵const函数参数的值,则编译器将引发错误。
#include<iostream>
using namespace std;
int add(const int x)
{ x=x+100;
return x;
}
int main()
{
int ans = add(50);
cout<<"Addition:"<<ans;
}
在上面的示例中,我们试图更改const函数参数" x"的值,从而导致编译器错误。
输出:
main.cpp: In function ‘int add(int)’:
main.cpp:5:9: error: assignment of read-only parameter ‘x’
{ x=x+100;
3.指针为const
指针变量也可以使用以下语法声明为常量:
data-type const *variabl;
例:
#include<iostream>
using namespace std;
int main()
{ int age = 21;
int const *point = & age;
cout<<"Pointer value: "<<*point;
}
输出:
Pointer value: 21
错误和异常:
如果我们尝试操纵const指针的值,则会导致编译错误。
#include<iostream>
using namespace std;
int main()
{ int age = 21;
int const *point = & age;
*point=*point+10;
cout<<"Pointer value: "<<*point;
}
输出:
main.cpp: In function ‘int main()’:
main.cpp:6:19: error: assignment of read-only location ‘* point’
*point=*point+10;
4.类的数据变量为const
也可以将Class变量视为const,以使数据变量的值恒定且不变。
语法:
const data-type variable = value;
例:
#include<iostream>
using namespace std;
class Demo
{
public:
const int X = 10;
};
int main()
{
Demo d;
cout<<d.X;
}
输出:
10
错误和异常:
#include<iostream>
using namespace std;
class Demo
{
public:
const int X = 10;
};
int main()
{
Demo d;
d.X=100;
cout<<d.X;
}
输出:
main.cpp: In function ‘int main()’: main.cpp:12:8: error: assignment of read-only member ‘Demo::X’ d.X=100;
5.类的对象为const
甚至类的对象也可以使用const关键字。
一旦我们将一个类的对象声明为常量,该类的数据变量就变得不可变,即属于该对象所指向的类的数据变量的值无法更改。
语法:
const Class object;
例:
#include<iostream>
using namespace std;
class Demo
{
public:
int X = 10;
};
int main()
{
const Demo d;
cout<<d.X;
}
输出:
10
错误和异常:
#include<iostream>
using namespace std;
class Demo
{
public:
int X = 10;
};
int main()
{
const Demo d;
d.X=100;
cout<<d.X;
}
输出:
main.cpp: In function ‘int main()’: main.cpp:12:8: error: assignment of member ‘Demo::X’ in read-only object d.X=100;

