arcgis如何添加tbs工具工具

C++ 中的模板类声明头文件和实现文件分离后,如何能实现正常编译? - 知乎287被浏览62188分享邀请回答/questions/1724036/splitting-templated-c-classes-into-hpp-cpp-files-is-it-possible9012 条评论分享收藏感谢收起721 条评论分享收藏感谢收起更多与世界分享知识、经验和见解其他回答(1)
#include&iostream&using std::using std::class CBox{private:
double m_L
double m_W
double m_Hpublic:
explicit CBox(double lv=1.0,double wv=1.0,double hv=1.0):m_Length(lv),m_Width(wv),m_Height(hv)
cout&&"默认的构造函数"&&
m_Length=lv&wv?lv://长度不会小于宽度
m_Width=wv&lv?wv://宽度最小
double Volume() const
return m_Length*m_Width*m_H
bool operator&(const CBox &aBox)const
return this-&Volume()&aBox.Volume();
bool operator&(const double &value)const
return this-&Volume()&
CBox operator+(const CBox & aBox)const
//创建一个新对象,选择大
return CBox(this-&m_Length&aBox.m_Length?this-&m_Length:aBox.m_Length,
this-&m_Width&aBox.m_Width?this-&m_Width:aBox.m_Width,
this-&m_Height&aBox.m_Height?this-&m_Height:aBox.m_Height);
void SHowBox() const
cout&&this-&m_Length&&""&&m_Width&&""&&m_Height&&
static CB //我添加的};bool operator&(const double &value,const CBox &aBox);bool operator&(const double &value,const CBox &aBox){
return value&aBox.Volume();}template&class T&class CSamples{private:
T m_Values[100];
int m_Fpublic:
CSamples(const T values[],int count);
CSamples(const T& value);
CSamples(){m_Free=0;}
bool Add(const T& value);
T Max() const;};template&class T&CSamples&T&::CSamples(const T values[],int count){
m_Free=count&100?count:100;
for(int i=0;i&m_Fi++)
m_Values[i]=values[i];}template&class T&CSamples&T&::CSamples(const T& value){
m_Value[0]=
m_Free=1;} template&class T& bool CSamples&T&::Add(const T& value){
bool OK=m_Free&100;
m_Values[m_Free++]=
return OK;}template&class T& T CSamples&T&::Max() const{
T theMax=(m_Free&0?m_Values[0]:T::minimal);//我修改的
for(int i=1;i&m_Fi++)
if(m_Values[i]&theMax)
theMax= m_Values[i];
return theM}CBox CBox::minimal = CBox(0.0, 0.0, 0.0);//我添加的
int main(){
CBox boxes[]={
CBox(8.0,5.0,2.0),
CBox(5.0,4.0,6.0),
CBox(4.0,3.0,3.0)
CSamples&CBox& myBoxes(boxes,sizeof boxes/sizeof CBox);
CBox maxBox = myBoxes.Max();
cout&&endl
&&"The biggest box has a volume of"
&&maxBox.Volume()&&
return 0;}
园豆:2142
个人理解不是很合适。
这会把CBox 和&CSamples绑在一起,产生了紧耦合关系。
试想一下,我在编写CSample类时还要知道T一定会有一个minimal静态成员,如果CBox以动态库形式提供就更不合适了。
如果一定要有一个minimal,建议在CSample中添加一个const static T minimal成员。
园豆:2142
&&&您需要以后才能回答,未注册用户请先。您浏览的页面不存在
我的图书馆
信息提示:
您要浏览的文章不存在,5秒后将自动跳转到“360doc个人图书馆”的首页,您可以继续浏览其它好文章,也可以&
&当前页面。C++模板专题_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C++模板专题
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩9页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢为什么类模板的定义和实现都得在一个文件里完成,分开了好像就出错
因为模板类是不是类的定义,而是定义类的模板,
因此编译器要在使用的文件中展开,从而生成类的定义,然后才能编译;
否则编译器不知道如何生成类并进行编译
不过,现在好了,新的编译技术已经允许分开了,但是需要特殊处理。
其他答案(共1个回答)
器一般都不支持C++的这个标准,所以,一些库文件,如BOOST库,STL库的实现,大多都是一个文件内写,比如.hpp文件,想了解模板类,最好去看看STL,boost库,看他们怎么运用的,
http://blog.csdn.net/cto_51/article/details/8827196
推荐网址给你 希望可以帮到你哦。
用编译哭编译一下就可以独立运行了,前掉是你用的是纯c++,没用到MFC什么的类库
把那两个文件编译到不同的文件夹和文件
你得先说明你使用的是什么编译器或者IDE。如果在其中不可重命名的话关闭程序然后再外部操作之后再进入开发环境(你所谓的“进入C++”)就行了。
.h是头文件,是函数和数据结构申明文件.cpp是代码实现文件多个代码文件之间的引用可以通过包含.h文件实现
维斯岛Studio Milna 8490a怎么样?有人住过吗?
答: 如果你理解能力强考数据库,其中比如关系数据库之类的需要去领悟
如果你记忆能力强考网络,各种各样的名词,背下来就得分。
还有官方指定的教材要有,上机最好做一做...
答: 新年好!首先,你必须了解计算机的组成和结构以及操作系统的运作原理,这是基础
如果你想学习开发多线程、WINDOWS应用、动态链接库、WINDOWS组件的话,建...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区

我要回帖

更多关于 arcgis如何添加tbs工具 的文章

 

随机推荐