| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 845 人关注过本帖
标题:请教各位大虾,面向对象的题目,怎样不修改主函数和子函数的条件下修改输出 ...
只看楼主 加入收藏
babyly1314
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-5
收藏
 问题点数:0 回复次数:3 
请教各位大虾,面向对象的题目,怎样不修改主函数和子函数的条件下修改输出内容??
有两个题目,小弟百思不得其解,请指教,我想第一个题目应该用继承性来做,第二个还没有头绪……请教
# include <stdio.h>
void  hello () { printf(“ Hello, world!\n”); }
int  main ()
{
 hello(); return 0;
}
试修改上面的程序,使其输出变成:
Begin
  Hello, world!
End

限制:(1)不能对main()进行任何修改;(2 )不能修改hello()中的printf语句,也不能在hello()中增加任何其他可执行语
       句。

2. 用C++语言定义MyType  (包括方法体),使之能够通过下面的测试程序:
    int main()
    {
      MyType<int>           s1(10), s2(-5), s3;
      MyType<double>        s4(10.3), s5(5.2), s6;
      s3 = s1 + s2;
      s6 = s4 - s5;
      printf(" s1.value = %d  s2.value = %d   s3.value = %d\n", s1.getValue(), s2.getValue(), s3.getValue());
      printf(" s4.value = %2.1f s5.value = %2.1f   s6.value = %2.1f\n",  s4.getValue(), s5.getValue(), s6.getValue());
      return 0;
    }

该测试程序的输出应为:
    s1.value = 10  s2.value = -5 s3.value = 5
    s4.value = 10.3  s5.value =  5.2 s6.value = 5.1
搜索更多相关主题的帖子: 面向对象 函数 条件 
2008-11-05 19:00
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
有意思~~~~
第一题:
#include <stdio.h>
namespace HELLO
{
void  hello () { printf(“ Hello, world!\n”); }
}
void hello()
{
    printf("Begin\n");
    HELLO::hello();
    printf("End\n");
}
int  main ()
{
hello(); return 0;
}
第二题:(只做到了符合你的要求...没做更多的要求~)
template<typename _Ty>
class MyType
{
public:
    MyType() {};
    MyType(_Ty const& val) { val_=val; }
    friend
    const MyType operator+ ( MyType<_Ty> const& lp,MyType<_Ty> const& rp)
    {
        return MyType(lp.val_,rp.val_);
    }
    friend
    const MyType operator- (MyType<_Ty> const&lp,MyType<_Ty> const& rp)
    {
        return MyType(lp.val_,-rp.val_);
    }
    _Ty getValue() const { return val_; }
private:
    MyType(_Ty const& lv,_Ty const&rv) { val_=lv+rv; }
private:
    _Ty val_;
};
int main()
    {
      MyType<int>           s1(10), s2(-5), s3;
      MyType<double>        s4(10.3), s5(5.2), s6;
      s3 = s1 + s2;
      s6 = s4 - s5;
      printf(" s1.value = %d  s2.value = %d   s3.value = %d\n", s1.getValue(), s2.getValue(), s3.getValue());
      printf(" s4.value = %2.1f s5.value = %2.1f   s6.value = %2.1f\n",  s4.getValue(), s5.getValue(), s6.getValue());
      return 0;
    }

樱花大战,  有爱.
2008-11-05 19:31
babyly1314
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-11-5
收藏
得分:0 
非常感谢,但我还是看不太懂~谢谢了!
2008-11-05 19:53
newyj
Rank: 2
等 级:新手上路
威 望:3
帖 子:542
专家分:0
注 册:2008-1-4
收藏
得分:0 
第一题 不知道 是否符合lz的要求
程序代码:
#include<stdio.h>
#define hello() hello()()
class hello
{
   public:
     const hello& operator()(){printf("Begin\n  Hello,world!\nEnd\n");return *this;}      
};

//void  hello () { printf(“ Hello, world!\n”); }

int main()
{
hello();return 0;      
}

第二题 和版主的差不多 就不贴出来了
2008-11-05 20:49
快速回复:请教各位大虾,面向对象的题目,怎样不修改主函数和子函数的条件下修改 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016855 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved