首页 > 试题广场 > 关于函数模板,描述错误的是? 
[单选题]
关于函数模板,描述错误的是? 
  • 函数模板必须由程序员实例化为可执行的函数模板
  • 函数模板的实例化由编译器实现
  • 一个类定义中,只要有一个函数模板,则这个类是类模板
  • 类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化

12个回答

添加回答
  • 推荐
    A。
    正确的说法是 函数模板必
       查看全部
    编辑于 2015-01-02 21:47:27 回复(5)
  • ACE全是错的
    A 不说了
    C 自己运行下面的代码看看就行了
    class fooo{
    public:
    	template<class T>
    	void func(T){
    		cout << typeid(T).name() << endl;
    	}
    };
    
    int main(int argc, char * * argv) {
    	fooo f;
    	f.func<int>(100);
    	return 0;
    }
    D 没有使用的成员函数不会被实例化。
    发表于 2016-08-09 20:13:18 回复(0)
  • 函数模板必须由程序员实例化为可执行的函数模板//函数,而不是模板了,再还是模板干嘛实例化呢,,,,所以最后结果是函数去掉模板..
    函数模板的实例化由编译器实现//实现就是用编译器实现的
    发表于 2016-11-15 00:07:12 回复(0)
  • 编译器完成模板实例化
    发表于 2016-09-22 23:29:44 回复(0)
  • 类模板的成员函数都是函数模板?这句话对吗?哪位能给说明一下?
    发表于 2016-08-28 17:38:49 回复(1)
  • 函数模板必须由 编译器根据 程序员 的调用类型 实例化为可执行的函数
    发表于 2016-05-18 22:14:25 回复(0)
  • D前面几个 “如果” 就对了
    发表于 2016-03-20 15:00:55 回复(0)
  • #include <iostream>
    using namespace std;
    
    struct Test{
        Test(): i(1), f(2.0f) {}
        
        template<class T>
        void print(const T &elem){
            cout << elem << endl;
        }
    
       
        int i;
        float f;
    };
    
    int main(void)
    {
        Test t;
        t.print<int>(t.i);
        t.print<float>(t.f);
        return 0;
    }
    
    请问C项怎么解释?
    发表于 2015-09-29 14:09:27 回复(1)
  • 如果多选,D也是错的
    发表于 2015-09-10 19:22:17 回复(0)
  • 模板函数由编译器进行参数推导
    发表于 2015-06-06 22:50:29 回复(0)
  • 我感觉D不对:
    #include<stdio.h>
    #include<unistd.h>

    template <class T>
    class A
    {
    public:
        void f() {}
    };

    int main()
    {
        A<int> a;
    }

    编译没问题,类模版中的函数也可以是普通函数
    发表于 2015-05-11 20:52:58 回复(1)
  • Template可以独立于任何特定的类型编写代码,是泛型编程的基础.当我们编写的类和函数能够多态的用于跨越编译时不相关的类型时,用Template.模板主要用于STL中的容器,算法,迭代器等以及模板元编程.(C++的template是实现在库设计和嵌入式设计中的关键。template能实现抽象和效率的结合;同时template还能有效地防止代码膨胀)
    发表于 2014-10-25 00:26:17 回复(0)
牛客网,程序员必备求职神器
QQ群:169195721
微 信:www_nowcoder_com 关注
微 博:牛客网 关注

扫一扫,把题目装进口袋