针对如下C++模板结构体代码,下列说法正确的是?

sb882496 单选题 共 个子题
#include <iostream>
#include <string>

template<typename T>
struct MyStruct {
    T val;
    MyStruct(T v) : val(v) {}
    T getVal() { return val; }
};

// 针对std::string的全特化版本
template<>
struct MyStruct<std::string> {
    std::string val;
    MyStruct(std::string v) : val("prefix_" + v) {}
    std::string getVal() { return val; }
};
A

MyStruct<int> s(10); std::cout << s.getVal(); 可正确编译运行,输出结果为10

B

MyStruct<std::string> s("test"); std::cout << s.getVal(); 可正确编译运行,输出结果为test

C

MyStruct s(3.14); 可直接正确编译,无需显式指定模板参数类型

D

MyStruct<const char*> s("hello"); 会触发std::string的特化版本,输出prefix_hello

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧