E2 驾驭const

E2 驾驭const

时间: 1ms        内存:128M

描述:

引入了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;
}

输入:

两个整数,以空格分开

输出:

两数的乘积

示例输入:

3 5

示例输出:

x*y=15

提示:

参考答案(内存最优[1092]):

#include<stdio.h>
#define PI 3.14
int main()
{

    int a,b;
    scanf("%d%d",&a,&b);
    printf("x*y=%d\n",a*b);
    return 0;
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
class Test
{
private:
    int x;
    const int y;
//************* begin *****************
public:
    Test(int a, int b);
    void printxy() const;   //printxy()应该是常成员函数
} ;
Test::Test(int a, int b):x(a),y(b){}  //对常数据成员,构造函数中应该用初始化表
void Test::printxy() const  //printxy()应该是常成员函数
{
    cout<<"x*y="<<x*y<<endl;
}
//************* end *****************
int main()
{
    int x1,x2;
    cin>>x1>>x2;
    const Test t(x1,x2);
    t.printxy( );
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注