🌈个人主页:羽晨同学
💫个人格言:“成为自己未来的主人~”
类模板的定义格式:
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
template<class T>
class Stack
{
public:
Stack(size_t capacity = 4)
{
_array = (T*)malloc(sizeof(T) * capacity);
if (_array == nullptr)
{
perror("malloc fail");
return;
}
_capacity = capacity;
_size = 0;
}
void Push(const T& data);
private:
T* _array;
size_t _capacity;
size_t _size;
};
在这个当中,我们需要注意的是,声明和定义不能分开放在.h和.cpp中,这样的话会出现链接错误。
但是我们可以都放在.h中
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
template<class T>
class Stack
{
public:
Stack(size_t capacity = 4)
{
_array = (T*)malloc(sizeof(T) * capacity);
if (_array == nullptr)
{
perror("malloc fail");
return;
}
_capacity = capacity;
_size = 0;
}
void Push(const T& data);
private:
T* _array;
size_t _capacity;
size_t _size;
};
template<typename T>
void Stack<T>::Push(const T& data)
{
_array[_size] = data;
++_size;
}
int main()
{
Stack<int> st1;
Stack<double> st2;
return 0;
}