zoukankan      html  css  js  c++  java
  • 第二十三模板 8数组模板 简单

    //第二十三模板 8数组模板
    /*#include <iostream>
    using namespace std;
    template<class T, int n>
    class people
    {
    public:
    	people();
    	people(const T&t);
    	T&operator[](int i);
    	//注意:
    	//这两行定义的带一个参数的构造数和下标运算符数operator[],它们操作的对像不是下面定义的数组成员a[]
    	//而是people类的对像
    	void show();
    private:
    	T a[n];
    };
    
    template<class T, int n>
    people<T,n>::people() //默认构造函数
    {
    	cout<<"执行构造函数"<<endl;
    	for(int i=0; i<n; i++)
    	{
    	    a[i] = (i+1);
    	}
    }
    
    template<class T, int n>
    people<T, n>::people(const T&t)
    {
         cout<<"执行带一个参数的构造函数"<<endl;
    	 for(int i=0; i<n; i++)
    	 {
    	      a[i] = t; //如果这里t为一个对像或者一个其它的
    	 }
    }
    
    template<class T, int n>
    T&people<T,n>::operator[](int i)
    {
         cout<<"执行下标运算符函数operator[]"<<endl;
    	 if(i<0 || i>=n)
    	 {
    	      cout<<"超出了数组限制,第:"<<i<<"个元素溢出"<<endl;
    		  exit(EXIT_FAILURE);
    	 }
    	 return a[i];
    }
    
    template<class T, int n>
    void people<T, n>::show()
    {
    	for(int i=0; i<n; i++){
    	    cout<<"a["<<i<<"]:"<<a[i]<<"\t";
    	}
    	cout<<endl;
    }
    int main()
    {
        people<double, 4>one;
    	one.show();
    
        people<double, 4>*p = new people<double, 4>[4];
    	//创建了四个对像,这四个对像按顺序排列在一个数组中,我们把这个数组叫对像数组,这个对像数组的地址返回给了people类的指针p来保存,这本来是一个很简单的在堆中创建的对像数组的过程,但是由于people类是个模板类,因此它的创建形式与普通类有些不同
    	for(int i=0; i<9; i++)
    	{
    	    p[i] =one[i];
    		p[i].show();
    	}
    	return 0;
    }*/
    

      

  • 相关阅读:
    C#实现京东登录密码加密POST
    查询SQL Server数据库所有表字段备注
    DataGridView数值列和日期列
    (转)Android 系统 root 破解原理分析
    Dynamics AX 中重点数据源方法
    .NET中Debug模式与Release模式
    DotNetBar的初步使用
    省市区联动小功能
    多余的Using Namespaces或引用会影响程序的执行效率么?
    MSIL指令集
  • 原文地址:https://www.cnblogs.com/xiangxiaodong/p/2711683.html
Copyright © 2011-2022 走看看