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

原创 2012年03月26日 18:30:13
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称: 修改方案                             
* 作    者:李洪悬                              
* 完成日期:   2012      年 3      月  28      日
* 版 本 号:          

* 对任务及求解方法的描述部分
* 输入描述: 
* 问题描述: 
* 程序输出: 
* 程序头部的注释结束
*/
【任务1】下面的程序存在编译错误。有两种方法可以修改,请给出这两种修改方案,在报告中说明你倾向于用哪一种?为什么?处理此类问题的原则是什么?
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()
	{
		return x;
	}  
};  
void main()  
{  
	 C c(5);//去掉const(即不是常对象)
	
	cout<< c.getX() << endl;   //这一行将会出现错误 
	
	system("pause");  
}
方案二:  
#include < iostream >

using namespace std;

class C
{
private:
	
	int x;
	
public: 
	
	C(int x)
	{
		this-> x = x;
	} 
	
	int getX() const//加上const成为常成员函数(能被常对象调用)
	{
		return x;
	}  
};  
void main()  
{  
	const C c(5);//定义为常对象
	
	cout<< c.getX() << endl;   //这一行将会出现错误 
	
	system("pause");  
} 
一 分析错误:常对象不能调用非const型的成员函数。
二 修改错误:
方案一:将【const C c(5);//定义为常对象】中的const去掉,能调用非const型的成员函数;
方案二:将【int getX() const//加上const成为常成员函数(能被常对象调用)】;
三 评价:当【const C c(5);//定义为常对象】时,对常对象中的数据成员构成了保护,防止对象中的数据被修改,此程序只是输出数据,
即方案二较好;同时const成员函数既可以被const对象调用也可以被非const对象调用。


经验积累:由目标确定行动方案!





            
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

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

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

c++第四周【任务1】下面设计一个三角形类,请给出各成员函数的定义

* 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:设计一个三角形类         ...

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

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

C++第十周【任务1】在下面一段类的定义中,需要填充的函数由注释内容给出了功能。

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

6-1 修改程序错误,两种修改方案

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

C++程序设计实验报告(四十五)---第六周任务三

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

C++程序设计实验报告(四十六)---第六周任务四

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

C++程序设计实验报告(四十七)---第六周任务五

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

《C++第六周实验报告5-1》---将任务4的解决用一个项目多个文件的方式实现

//main.cpp /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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