分析如下C++代码,关于程序运行结果和模板结构体的说法正确的是?

er803303 单选题 共 个子题
#include <iostream>
using namespace std;

template<typename T>
struct TestStruct {
    T val;
    void print() {
        cout << "Generic: " << val << endl;
    }
};

// 全特化版本
template<>
struct TestStruct<int> {
    int val;
    void print() {
        cout << "Specialized int: " << val * 2 << endl;
    }
};

int main() {
    TestStruct<double> s1;
    s1.val = 3.14;
    s1.print();
    TestStruct<int> s2;
    s2.val = 5;
    s2.print();
    return 0;
}
A

程序运行会输出 Generic: 3.14 和 Specialized int: 5

B

程序运行会输出 Generic: 3.14 和 Specialized int: 10

C

代码编译失败,因为特化的TestStruct<int>的print函数实现与泛型版本不一致

D

无法实例化模板结构体TestStruct<double>,因为double不属于C++内置数据类型

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