建设行政主管部门查询网站,网站建设属于固定资产吗,大型门户网站核心技术,万国企业网类模板
模板是将类中某些类型变为泛型#xff0c;从而定义一个模板。 如下#xff1a;
类模板的语法
直接进行对比#xff1a; 泛型化之前 泛型化之后类模板的实例化
注意#xff1a;只要是对类模版进行实例化#xff0c;编译器就会生成一个类#xff01;#xff0…类模板
模板是将类中某些类型变为泛型从而定义一个模板。 如下
类模板的语法
直接进行对比
泛型化之前 泛型化之后
类模板的实例化
注意只要是对类模版进行实例化编译器就会生成一个类 显式实例化
template class Stackint; // 将类模板实例化为一个处理int类型的Stack类隐式实例化 生成一个处理char类型的对象
Stackchar charStack; // 先实例化一个CharStack类(名字由编译器按规则生成)// class CharStack { … char elements[100]; … };// 然后用 CharStack charStack; 创建一个对象code附录
泛型化之前的
#pragma once//编写StackOfIntegers类
class Stack {
private:int elements[100];int size{ 0 };
public:bool empty();int peek();int push(int value);int pop();int getSize();Stack();
};
Stack::Stack() {size 0;for (int i : elements) {i 0;}
}bool Stack::empty() {return (size 0 ? true : false);
}int Stack::getSize() {return size;
}int Stack::peek() {return elements[size - 1];
}int Stack::pop() {int temp elements[size - 1];elements[size - 1] 0;size--;return temp;
}int Stack::push(int value) {elements[size] value;size;return value;
}泛型化之后的
#pragma once//泛型化
template typename T
//编写StackOfIntegers类
class Stack {
private:T elements[100];int size{ 0 };
public:bool empty();T peek();T push(T value);T pop();int getSize();Stack();
};
template typename T
StackT::Stack() {size 0;for (auto i : elements) {i 0;}
}
template typename T
bool StackT::empty() {return (size 0 ? true : false);
}
template typename T
int StackT::getSize() {return size;
}
template typename T
T StackT::peek() {return elements[size - 1];
}
template typename T
T StackT::pop() {T temp elements[size - 1];elements[size - 1] 0;size--;return temp;
}
template typename T
T StackT::push(T value) {elements[size] value;size;return value;
}main测试代码
#include Stack.h
#include iostream
#include string
int main()
{Stackchar c;std::string s{ Hello World!};for (auto i : s) {c.push(i);}while (c.empty() ! true) {std::cout c.pop() std::endl;}
}