⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo_1_template_class_1.cpp

📁 对于一个初涉VC++的人来书
💻 CPP
字号:

//***************************************************

#include <iostream.h>
#include <stdlib.h>

template <class T>  //类模板的声明或类界面的定义
class Store
{
    private:
        T item;         
        int haveValue;  
		
    public:
        Store(void); 
        
        T GetElem(void); 
        void PutElem(T x);  
};

//模板类的成员函数在类外实现
template <class T>                              
Store<T>::Store(void):haveValue(0)
{}

template <class T>                 
T Store<T>::GetElem(void)    
{
    if (haveValue==0)
    {
        cout<<"No item present!"<<endl;
        exit(1);
    }

    return item; 
}

template <class T>                              
void Store<T>::PutElem(T x)
{
    haveValue++; 
    item=x;  
}

struct Student  //结构体Student
{
    int   id; 
    float gpa; 
};  

void main(void)
{
    Student g={1000,23}; //定义Student类型结构体变量并初始化
	
    Store<int> S1,S2;  	 //定义Store类对象,其中数据成员item为int类型
    Store<Student> S3;   //定义Store类对象,其中数据成员item为Student类型
    Store<double> D; 	 //定义Store类对象,其中数据成员item为double类型
	
    S1.PutElem(3);  //向对象S1中存入数据(初始化对象S1)
    S2.PutElem(-7); //向对象S2中存入数据(初始化对象S2)
    cout<<S1.GetElem()<<","<<S2.GetElem()<<endl; //输出对象S1和S2数据成员
	
    S3.PutElem(g); //向对象D中存入数据(初始化对象D)
    cout<<"The student id is: "<<S3.GetElem().id<<endl;	//输出对象S3数据成员
    
    cout<<"Retrieving object D: " ;
	cout<<D.GetElem()<<endl;  //输出对象D数据成员
	// 由于D未经初始化,在执行函数D.GetElement()过程中导致程序终止
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -