
C++中,这个const加的有什么意义?
#include<iostream>usingnamespacestd;classA{public:A(){x=newint;*x=5;}~A(){}A(constA&a...
#include <iostream>
using namespace std;
class A
{
public:
A(){x=new int;*x=5;}
~A(){}
A(const A&a){x=new int;*x=(*a.x);}
void set(int i){*x=i;}
int print()const{return *x;}
private:
int *x;
};
int main()
{
A*a=new A;
cout<<"a:"<<a->print()<<endl;
A b(*a);
b.set(9);
cout<<"b:"<<b.print()<<endl;
return 0;
}
就是print后面的那个const,我感觉是可有可无的啊,如果不是可有可无的,那么为什么? 展开
using namespace std;
class A
{
public:
A(){x=new int;*x=5;}
~A(){}
A(const A&a){x=new int;*x=(*a.x);}
void set(int i){*x=i;}
int print()const{return *x;}
private:
int *x;
};
int main()
{
A*a=new A;
cout<<"a:"<<a->print()<<endl;
A b(*a);
b.set(9);
cout<<"b:"<<b.print()<<endl;
return 0;
}
就是print后面的那个const,我感觉是可有可无的啊,如果不是可有可无的,那么为什么? 展开
3个回答
展开全部
这里的const表示这个方法不可以改变对象的属性
也就是说在print中不可以改变x这个属性
主要是给调试编程提供便利
加上了这个const之后,如果print方法中本来不应该改变x,但是写程序时,不小心改变了
这是编译器会报错,
一句话,规范了编程
也就是说在print中不可以改变x这个属性
主要是给调试编程提供便利
加上了这个const之后,如果print方法中本来不应该改变x,但是写程序时,不小心改变了
这是编译器会报错,
一句话,规范了编程

2024-04-12 广告
莘默(上海)自动化设备有限公司成立于2016年3月,是中国工控领域的领先分销商,专业从事欧美工控自动化产品的贸易。主要经营欧美各国知名品牌的高精密编码器、传感器、仪器仪表、阀门、泵、电机以及各类自动化产品。服务于冶金,汽车,化工,食品,能源...
点击进入详情页
本回答由上海莘默提供
展开全部
有意义,就看怎么用了,举一例
const与类成员函数。先看看下面这段代码:
const Stock land =Stock("hyd");
land.show();
land 是常量,但是类成员函数show无法保证不修改land,所以编译器将拒绝执行该段代码。除非你能保证show像const函数一样,但这需要另外一种语法,即:
void show() const;(声明)
void Stock::show() const{}(定义)。
const与类成员函数。先看看下面这段代码:
const Stock land =Stock("hyd");
land.show();
land 是常量,但是类成员函数show无法保证不修改land,所以编译器将拒绝执行该段代码。除非你能保证show像const函数一样,但这需要另外一种语法,即:
void show() const;(声明)
void Stock::show() const{}(定义)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询