类模板的基础

// testtemplate.cpp : 定义控制台应用程序的入口点。

//


#include "stdafx.h"

#include <iostream>



class TestStruct

{

public:

  int test()

  {

    std::cout<<"4"<<std::endl;

    return 0;

  }

};


template<class T> 

class TEST

{

public:

  TEST(T t)

  {

    /*在这里提出的一点疑问是模板怎么知道有test这个函数呢,实际上在编译期间

    编译器会为该类型生成一个单独的函数版本,并不是一种运行时的动态加载,这

    也是为什么需要类模板定义和声明一般放在头文件的原因,必须能够在编译期间

    成功的展开,

    */

    t.test();

  }

};



int _tmain(int argc, _TCHAR* argv[])

{

  TestStruct ttt;

  TEST<TestStruct> test(ttt);

return 0;

}


你可能感兴趣的:(agg)