未解决的外部错误,c ++

时间:2015-07-05 11:59:17

标签: c++

我无法理解为什么此代码会出现未解析的外部错误。

stack.cpp

#include "stack.h"
#include<iostream>
using namespace std;

template<int i>
st<i>& st<i>::operator=(const st<i> &other){    
    if(this!=&other){
        delete[]anarray;
        anarray=new int[i];
        for(int i=0;i<10;i++)
            anarray[i]=other.anarray[i];}
    return *this;
    }

template<int i>
void st<i>::push(int i2, int val){anarray[i2]=val;}

stack.h

#pragma once


template<int i> 
class st{
public: int  *anarray;

    st(){anarray=new int[i];}
    ~st(){delete[]anarray;};
    st<i>& operator=(const st<i> &other);


    //int& operator[](int i);
    void push(int i, int val);
};

的main.cpp

#include<iostream>
#include"stek.h"
using namespace std;

void main(){
    cout<<"----"<<endl;
    st <10> z1; st<10> z2;
    for(int i=0;i<6;i++)
    z1.anarray[i]=2*i;
    z2=z1; for(int i=0;i<6;i++) cout<<z2.anarray[i]<<endl;
    cout<<"----"<<endl;

    system("pause");
}

我知道如何实现这一点,所以它有效,但我的问题是为什么这个特定的例子不起作用。

0 个答案:

没有答案