Problem G: E2 驾驭const
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 392 Solved: 261
[ Submit][ Status][ Web Board]
Description
引入了const关键词,用于指定“常”对象及“常”对象成员,提供了对数据的一种保护机制,这C++语言的特色之一。但由此,也引出了一些语法上的要求。这些语法要求,实际上有一套完善的原则,需要熟知。
下面的程序,要利用输入的两个数创建一个对象,并调用printxy成员函数输入两数之和。下面的程序中,begin到end部分需要改动三处,才能保证程序符合要求并正确输出。请你找出并修改过来,提交begin到end部分的代码。
#include <iostream>
using namespace std;
class Test
{
private:
int x;
const int y;
//************* begin *****************
public:
Test(int a, int b);
void printxy(); //(1)
} ;
Test::Test(int a, int b){x=a;y=b;} //(2)
void Test::printxy() //(3)
{
cout<<"x*y="<<x*y<<endl;
}
//************* end *****************
int main()
{
int x1,x2;
cin>>x1>>x2;
const Test t(x1,x2);
t.printxy( );
return 0;
}
Input
两个整数,以空格分开
Output
两数的乘积
Sample Input
3 5
Sample Output
x*y=15
HINT
/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*作 者:单昕昕
*完成日期:2015年5月16日
*版 本 号:v1.0
*/
#include <iostream>
using namespace std;
class Test
{
private:
int x;
const int y;
//************* begin *****************
public:
Test(int a, int b);
void printxy()const; //(1)常数据成员和指针数据成员只能用列表进行初始化
} ;
Test::Test(int a, int b):x(a),y(b) {}
//(2)引用常变量中的数据成员需要将该成员函数声明称const型的成员函数(常成员函数)
void Test::printxy()const //(3)
{
cout<<"x*y="<<x*y<<endl;
}
//************* end *****************
int main()
{
int x1,x2;
cin>>x1>>x2;
const Test t(x1,x2);
t.printxy( );
return 0;
}