📜  C ++ |模板|问题2

📅  最后修改于: 2021-06-01 02:49:01             🧑  作者: Mango

预测输出?

#include 
using namespace std;
  
template 
void fun(const T&x)
{
    static int count = 0;
    cout << "x = " << x << " count = " << count << endl;
    ++count;
    return;
}
  
int main()
{
    fun (1); 
    cout << endl;
    fun(1); 
    cout << endl;
    fun(1.1);
    cout << endl;
    return 0;
}

(一种)

x = 1 count = 0

x = 1 count = 1

x = 1.1 count = 0

(B)

x = 1 count = 0

x = 1 count = 0

x = 1.1 count = 0

(C)

x = 1 count = 0

x = 1 count = 1

x = 1.1 count = 2

(D)编译器错误答案: (A)
说明:编译器为每种数据类型创建一个模板函数的新实例。因此,在上面的示例中,编译器创建了两个函数,一个用于int,另一个用于double。每个实例都有自己的静态变量副本。函数的int实例被调用两次,因此第二次调用的计数增加。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。