模板是通用编程的基础,它涉及以独立于任何特定类型的方式编写代码。
import std.stdio; void print(T)(T value) { writefln("%s", value); } void main() { print(42); print(1.2); print("test"); }
可以有多种参数类型。它们显示在下面的示例中。
import std.stdio; void print(T1, T2)(T1 value1, T2 value2) { writefln(" %s %s", value1, value2); } void main() { print(42, "Learnfk"); print(1.2, 33); }
42 Learnfk 1.2 33
正如我们可以定义函数模板一样,我们也可以定义类模板,下面的示例定义了Stack类,并实现了通用方法来推送和弹出堆栈中的元素。
import std.stdio; import std.string; class Stack(T) { private: T[] elements; public: void push(T element) { elements ~= element; } void pop() { --elements.length; } T top() const @property { return elements[$- 1]; } size_t length() const @property { return elements.length; } } void main() { auto stack=new Stack!string; stack.push("Learnfk"); stack.push("Toolfk"); writeln(stack.top); writeln(stack.length); stack.pop; writeln(stack.top); writeln(stack.length); }
编译并执行上述代码后,将产生以下输出-
Learnfk 2 Toolfk 1
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕