企业网网站,小程序营销策略,江西汽车网站建设,四川网站建设培训学校之前已经学习了C类模板#xff1b;类模板的写法和一般类的写法有很大的差别#xff1b;不容易熟悉#xff1b;下面再做一遍#xff1b;
做一个椭圆类#xff0c;成员有长轴长度和短轴长度#xff1b;
// ellipse.h: interface for the ellipse class.
//
//#if !define…之前已经学习了C类模板类模板的写法和一般类的写法有很大的差别不容易熟悉下面再做一遍
做一个椭圆类成员有长轴长度和短轴长度
// ellipse.h: interface for the ellipse class.
//
//#if !defined(AFX_ELLIPSE_H__51CD537E_D0B0_40F9_AD63_92F0502C0430__INCLUDED_)
#define AFX_ELLIPSE_H__51CD537E_D0B0_40F9_AD63_92F0502C0430__INCLUDED_#if _MSC_VER 1000
#pragma once
#endif // _MSC_VER 1000templateclass T1, class T2class ellipse
{
public:ellipse(T1 a, T2 b) : older(a), lack(b){ }public:T1 getolder() const;void setolder(T1 a);T2 getlack() const;void setlack(T2 b);private:T1 older; //长轴长度T2 lack; //短轴长度
};templateclass T1, class T2
T1 ellipseT1, T2::getolder() const {return older;
}templateclass T1, class T2
void ellipseT1, T2::setolder(T1 a){older a;
}templateclass T1, class T2
T2 ellipseT1, T2::getlack() const{return lack;
}templateclass T1, class T2
void ellipseT1, T2::setlack(T2 b){lack b;
}#endif // !defined(AFX_ELLIPSE_H__51CD537E_D0B0_40F9_AD63_92F0502C0430__INCLUDED_)
类名之前先写 templateclass T1, class T2 T1和T2是两个成员的类型
ellipse(T1 a, T2 b) : older(a), lack(b){ } 构造函数接收2个参数一个类型为T1一个类型为T2把a传给成员变量older把b传给成员变量lack
T1 older; //长轴长度 T2 lack; //短轴长度 成员变量的定义类型写为T1、T2T1、T2可以替换为C的各种数据类型
templateclass T1, class T2 每个成员函数体之前也写上这个 调用如下
void CTyView::OnDraw(CDC* pDC)
{CTyDoc* pDoc GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data hereCString str1;ellipseint, int e1(100, 20);str1.Format(长轴%d短轴%d, e1.getolder(), e1.getlack());pDC-TextOut(50, 50, str1);ellipsechar*, char* e2(20cm, 10cm);str1.Format(长轴%s短轴%s, e2.getolder(), e2.getlack());pDC-TextOut(50, 80, str1);ellipsedouble, double e3(155.5, 97.5);str1.Format(长轴%f短轴%f, e3.getolder(), e3.getlack());pDC-TextOut(50, 140, str1);
}
运行