第六周实验指导--下面的程序存在编译错误,请给出两种修改方案--说明处理此类问题的原则是什么

原创 2012年03月25日 21:28:02
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:
下面的程序存在编译错误。有两种方法可以修改,请给出这两种修改方案,说明我倾向于用哪一种?为什么?处理此类问题的原则是什么?* 作    者:         雷恒鑫                       
* 完成日期:     2012    年 03      月    25   日
* 版 本 号:       V1.0   
* 对任务及求解方法的描述部分
* 输入描述: 
* 问题描述: 
* 程序输出: 

* 程序头部的注释结束

*/

以下是存在编译错误的程序:

class C
{
private:
	int x;
 public:
	C(int x){this->x = x;}
	int getX(){return x;}
};
void main()
{
	const C c(5);
	cout<<c.getX();
	system("pause");
}

第一种修改方案:

#include<iostream>

using namespace std;

class C
{
private:
	int x;
public:
	C(int x){this->x = x;}
	int getX() const {return x;}   //因此将成员函数声明为const型即可。
};
void main()
{
	const C c(5);
	cout<<c.getX();   //如果一个对象被声明为常对象,则不能调用该对象的非const型的成员函数,这是为了防止这些函数会修改常对象中数据成员得值。
	system("pause");
}
修改方案已在程序中给出。
注意:const 的位置在函数名和括号后。

第二种修改方案:

#include<iostream>

using namespace std;

class C
{
private:
	int x;
public:
	C(int x){this->x = x;}
	int getX() {return x;}   
};
void main()
{
	C c(5);          //因为const常对象原则上不能调用该对象的非const型的成员函数,因此把const去掉即可。
	cout<<c.getX();  
	system("pause");
}

修改方案已在程序中给出。


我更倾向于第一种修改方案,因为第一种修改方案可以对共用数据进行有效保护,虽然书写上有点麻烦,但是它有效避免了我们无意中修改数据的情况,在今后的工程中它有效避免了一个小数据的错误改动带来的巨大损失!


C++第六周任务一【任务1】下面的程序存在编译错误。有两种方法可以修改,请给出这两种修改方案,在报告中说明你倾向于用哪一种?为什么?处理此类问题的原则是什么?

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 修...

第六周实验报告任务 1 下面程序存在编译错误。有两种修改方案,更倾向于那一种?为什么?

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生  * All rights reserved. * 文件名称:下面...

C#--第5周实验--任务1(建立Windows窗体应用程序)--随机给出一个0至99(包括0和99)之间的数字,然后让你猜是什么数字。

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:猜数...

第六周实验指导--程序填空:按要求将缺少的代码填进去

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生  * All rights reserved. * 文件名称:设计...

存在编译错误的程序和改后的程序比较

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...

第六周实验指导--任务四--设计一个三角形类,能够输入三角形的三个顶点,求出其面积、周长。

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生  * All rights reserved. * 文件名称:设计...

Caffe 工程的一些编译错误以及解决方案(undefined reference to cv::imread)

原文链接:http://blog.csdn.net/yhl_leo/article/details/51371936 在编译caffe时遇到了该博文的第二种情况,改正后可以正确执行: (注意根据电脑情...

C#--第2周实验--任务14--随机给出一个0至99(包括0和99)之间的数字,然后让你猜是什么数字。

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生  * All rights reserved. * 文件名称:随机...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第六周实验指导--下面的程序存在编译错误,请给出两种修改方案--说明处理此类问题的原则是什么
举报原因:
原因补充:

(最多只允许输入30个字)