下列关于给定C++模板结构体代码的描述与使用中,正确的是哪一项?

zy341710 单选题 共 个子题

已知如下C++代码片段:

#include <iostream>
using namespace std;

template<typename T = int>
struct MyStruct {
    T val;
    MyStruct(T v) : val(v) {}
    void show() { cout << val << endl; }
};

int main() {
    // 以下选项中的代码片段均尝试在main函数中使用该模板结构体,哪一项的使用是合法且符合预期的?
}
A

MyStruct a(10); 无法通过编译,因为未显式指定模板参数

B

MyStruct<double> b(20.5); b.show(); 可以正常编译运行,输出20.5

C

MyStruct<> c(30); c.show(); 会触发编译错误,因为空模板参数列表非法

D

MyStruct d; 可以正常编译运行,默认使用double作为模板参数类型

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