C++模板Template的使用,精简详解,秒懂。
2018-07-04 16:49
190 查看
为了能够完整地描述模板的创建和具体使用,以下会有完善的测试,请大家耐心看下去,基本可以看得懂,即学即用。
// CPP面向对象.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; template <class T> class MyClass { public: MyClass(T e); ~MyClass(); void printSum(T f); void noPara(T); T mul = 11; T mulSet; T add(); void undefine(); private: T a; T b; T c; T d; protected: }; template<class T> MyClass<T>::MyClass(T e):a(10), b(30), c(90), d(99) { this->d = 666; cout << "Hello World!" << a << " -- " << b << " -- " << c << " -- " << d << " -- " << e << endl; } template<class T> MyClass<T>::~MyClass() { return; } template<class T> void MyClass<T>::printSum(T f) { cout << a + b + c + d + f << endl; } template<class T> void MyClass<T>::noPara(T adc) { cout << "I am adc(" << adc << ")" << endl; } template<class T> T MyClass<T>::add() { return ((this->a + this->b + this->c + this->d) * this->mul) * this->mulSet;; } template<class A, class B> class MyClass2 { public: MyClass2(A intA, B charB, B *intBs); ~MyClass2(); B ch1; B ch2[10]; private: }; template<class A, class B> MyClass2<A, B>::MyClass2(A intA, B intB, B *intBs) : ch1('c'), ch2("ch2") { cout << "A intA:" << intA << " -- " << "B intB:" << intB << "B intBs:" << intBs << " -- " << "ch1 = " << ch1 << " -- " << "ch2 = " << this->ch2 << endl; } template<class A, class B> MyClass2<A, B>::~MyClass2() { return; } template<class V> class MyClass3 { public: MyClass3(); ~MyClass3(); V test(); private: }; template<class V> MyClass3<V>::MyClass3() { } template<class V> MyClass3<V>::~MyClass3() { } template<class V> V MyClass3<V>::test() { cout << "test" << endl; } template<class V, class C> V vcFoo(C c) { cout << "V and C = " << c << endl; } int main() { MyClass<int> mc(55); mc.printSum(88); mc.mulSet = 123; cout << mc.add() / 123 << endl; mc.noPara(99); char NCAA[10] = "NCAA"; MyClass2<int, char> mc2(2, 'BBC', NCAA); //'BBC'取最后一个字符'C' MyClass3<void> ss; ss.test(); vcFoo<void>(10); system("pause"); return 0; }
阅读更多
相关文章推荐
- C++ - 函数模板(function template) 的 重载(overload) 详解 及 代码
- C++ - 函数模板(function template) 详解
- C++ - 模板(template)中typename的使用方法
- C++ - 模板类使用成员函数模板(member function template)处理隐式(implicit)转换
- C++模板(template)使用介绍
- C++ - 非类型模板参数(nontype template parameters) 使用 及 代码
- C++ - 成员函数(member function)模板(template) 详解 及 代码
- C++中 模板Template的使用
- C++中 模板Template的使用
- C++中 模板Template的使用 (typename)
- C++中 模板Template的使用
- C++中模板使用详解---写得很棒,一看就懂
- c++模板 template的使用
- C++中模板使用详解
- C++ - 函数模板(function template) 详解
- C++中 模板Template的使用
- C++ - 非类型模板参数(nontype template parameters) 使用 及 代码
- C++中 模板Template的使用
- C++ - 函数模板(function template) 的 重载(overload) 详解 及 代码
- C++中模板使用详解