下面函数模板定义中不正确的是,求解?
答案:1 悬赏:70 手机版
解决时间 2021-02-26 16:03
- 提问者网友:星軌
- 2021-02-26 07:04
A、 template B、 template Q F(Q x){ Q F(Q x){ return Q+x; return x+x; } } C、 template D、 template T F(T x){ T F(T x){ return x*x; return x>1; } }
最佳答案
- 五星知识达人网友:woshuo
- 2021-02-26 08:14
A肯定不对。 Q是类型不是实例。
例如 F<char>(x) 会变成这样的编译:
char F(char x) { return char+x; } 必然失败。
B C 看似正确。
但是如果class Q 不是数值而是结构或者类,
如果没有重定义运算符 + * , 一样编译错误。
D 如果没有重定义运算符 >,
或者没有从bool型转到class Q型的构造函数,
一样编译错误。
例如 F<char>(x) 会变成这样的编译:
char F(char x) { return char+x; } 必然失败。
B C 看似正确。
但是如果class Q 不是数值而是结构或者类,
如果没有重定义运算符 + * , 一样编译错误。
D 如果没有重定义运算符 >,
或者没有从bool型转到class Q型的构造函数,
一样编译错误。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯