初学者的提问,分数轻易拿!!!!

AsheBin 2007-11-13 11:36:18
1、类模板的模板参数能作为成员函数的局部变量的类型吗?为什么?
2、下列是重载乘法运算符的函数原型声明,其中错误的是
A)MyClass operator*(double,double);
B)MyClass operator*(double,MyClass);
C)MyClass operator*(MyClass,double);
D)MyClass operator*(MyClass,MyClass);
3、如下函数的作用是以双倍行距输出文件:
Void double_soace(ifstream& f,ofstream& t){
char c;
while( ){

if(c==’/n’)t.put(c);
}
}
画线处缺失的部分是
A)f.get(c)与t.put(c)
B)f.put(c)与t.get(c))
C)t.get(c)与f.put(c)
D)t.put(c)与f.get(c)

这是我学C++遇到的几个问题,上面问题请详细说明原因。答的有道理马上给分!
...全文
83 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AsheBin 2007-11-13
  • 打赏
  • 举报
回复
不好意思,刚刚结贴,下次在给你吧,真没分了。
haozlee 2007-11-13
  • 打赏
  • 举报
回复
我解释下第二题吧。
重载运算符时,其参数至少应该有一个是用户定义的类型,也就是说,参数不能全是C++的标准类型,以防止用户修改标准类型数据的运算符的性质。
AsheBin 2007-11-13
  • 打赏
  • 举报
回复
呵呵,大家讲的都不错,开始散分了,第一次来,还不知道如何加分,谁告诉我一下?
never517 2007-11-13
  • 打赏
  • 举报
回复
1 可以,C++说可以,你我又能如何,记住就是自己的了。
2 a: double operator*(double,double)是系统提供的类型,加入MyClass operator*(double,double); 后产生二义性
3 我怎么看不到横线哦!电脑出问题了???
kelvenyiu 2007-11-13
  • 打赏
  • 举报
回复
A)MyClass operator*(double,double); => MyClass = double* double( primitive limited overloading double*double)
B)MyClass operator*(double,MyClass);=> MyClass = double*MyClass
C)MyClass operator*(MyClass,double);=> MyClass = MyClass*double
D)MyClass operator*(MyClass,MyClass);=> MyClass = MyClass*MyClass
==================
f.get(c)读一个字符(包括whitespace)
t.put(c)写一个字符(包括whitespace)
独孤过儿 2007-11-13
  • 打赏
  • 举报
回复
An overloaded operator must take at least one argument of a user-defined type (operators new and delete are an

exception -- see Chapter 11, "Memory Management," for more details). This rule ensures that users cannot alter the

meaning of expressions that contain only fundamental types.
独孤过儿 2007-11-13
  • 打赏
  • 举报
回复
2 选择A是因为C++不允许重载内置类型,两个double属于内置数据类型,禁止重载!
kelvenyiu 2007-11-13
  • 打赏
  • 举报
回复
楼上都答了,抢不到了
AsheBin 2007-11-13
  • 打赏
  • 举报
回复
2A,与double operator*(double,double)--原来的浮点乘只以返回类型区分
这个再说的详细点好吗?
hai040 2007-11-13
  • 打赏
  • 举报
回复
1可以,模板参数的作用域是整个类
2A,与double operator*(double,double)--原来的浮点乘只以返回类型区分
3A,取f的字符写到t中,如果是'\n'的话再写一个'\n'

64,322

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧