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

已知如下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作为模板参数类型

程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析