您的位置:首页 > 文旅 > 美景 > C++系列-类模板

C++系列-类模板

2025/2/22 13:00:34 来源:https://blog.csdn.net/in_seattle/article/details/139354799  浏览:    关键词:C++系列-类模板

🌈个人主页:羽晨同学 

💫个人格言:“成为自己未来的主人~”  

类模板的定义格式:

#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;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com