|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 谁知道在c++中怎么在模板中使用静态变量啊?
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
2960
人关注过本帖
标题:
谁知道在c++中怎么在模板中使用静态变量啊?
取消只看楼主
加入收藏
玉琪龙
等 级:
新手上路
帖 子:41
专家分:0
注 册:2007-12-9
楼主
收藏
问题点数:0 回复次数:6
谁知道在c++中怎么在模板中使用静态变量啊?
在学到c++模板时,忽然想到静态变量,于是试一下,但是出不了结果,不知道使用时有什么规则?请哪位高手指教一下!!
谢谢~~~~~
搜索更多相关主题的帖子:
十分感激
2007-12-09 11:55
举报帖子
使用道具
赠送鲜花
玉琪龙
等 级:
新手上路
帖 子:41
专家分:0
注 册:2007-12-9
第
2
楼
收藏
得分:0
具体点吧!大家看看这是怎么错的?
#include<iostream.h>
template <class T>
class Fun
{int l;T *p;
static T sum;
public:
Fun(int i=1)
{ l=i;
p=new T[i];
}
void input();
void output();
void sort();
void look(T);
void add()
{
for(int i=0;i<l;i++)
sum+=p[i];
}
~Fun(){delete [] p;}
};
T static::sum=0;
4template <class T>
void Fun<T>::input()
{ for(int i=0;i<l;i++)
{ cout<<"请输入第"<<i+1<<"个数据:";
cin>>p[i];
}
}
template <class T>
void Fun<T>::output()
{for(int i=0;i<l;i++)
cout<<p[i]<<' ';
}
template <class T>
void Fun<T>::sort()
{T tem;
for(int i=0;i<l-1;i++)
for(int j=i+1;j<l;j++)
if(p[i]>p[j])
{tem=p[i];
p[i]=p[j];
p[j]=tem;
}
}
template <class T>
void Fun<T>::look(T key)
{for(int i=0;i<l;i++)
if(p[i]!=key)continue;
else cout<<"您要的数据在第"<<i+1<<"个";
cout<<"抱歉~您要的数据没有查询到!请从新输入:";
}
void main()
{Fun<int> s(4);int key;
cout<<"请输入数据:";
cout<<endl;
s.input();cout<<endl;
cout<<"确认您的数据为:";
s.output();cout<<endl;
cout<<"对您的数据排序后结果:";
s.sort();
s.output();cout<<endl;
cout<<"请输入您要查询的数据:";
cin>>key;
s.look(key);
}
谢谢啊很多 麻烦大家啦
龙的图腾
2007-12-10 22:21
举报帖子
使用道具
赠送鲜花
玉琪龙
等 级:
新手上路
帖 子:41
专家分:0
注 册:2007-12-9
第
3
楼
收藏
得分:0
谢谢楼上的朋友啊!我上面的程序写的有点问题~~~不好意思
#include<iostream.h>
template <class T>
class Fun
{int l;T *p;
static T sum;
public:
Fun(int i=1)
{ l=i;
p=new T[i];
}
void input();
void output();
void sort();
void look(T);
void add()
{
for(int i=0;i<l;i++)
sum+=p[i];
}
~Fun(){delete [] p;}
};
T
Fun::sum=0;
template <class T>
void Fun<T>::input()
{ for(int i=0;i<l;i++)
{ cout<<"请输入第"<<i+1<<"个数据:";
cin>>p[i];
}
}
template <class T>
void Fun<T>::output()
{for(int i=0;i<l;i++)
cout<<p[i]<<' ';
}
template <class T>
void Fun<T>::sort()
{T tem;
for(int i=0;i<l-1;i++)
for(int j=i+1;j<l;j++)
if(p[i]>p[j])
{tem=p[i];
p[i]=p[j];
p[j]=tem;
}
}
template <class T>
void Fun<T>::look(T key)
{int k=-1;
for(int i=0;i<l;i++)
if(p[i]==key) k=i;
if(k!=-1) cout<<"您要的数据在第"<<k+1<<"个";
else cout<<"抱歉~您要的数据没有查询到!请从新输入:";
}
void main()
{Fun<int> s(4);int key;
cout<<"请输入数据:";
cout<<endl;
s.input();cout<<endl;
cout<<"确认您的数据为:";
s.output();cout<<endl;
cout<<"对您的数据排序后结果:";
s.sort();
s.output();cout<<endl;
cout<<"请输入您要查询的数据:";
cin>>key;
s.look(key);
}
请高手们在看看啊!~~~多谢啊
龙的图腾
2007-12-12 12:53
举报帖子
使用道具
赠送鲜花
玉琪龙
等 级:
新手上路
帖 子:41
专家分:0
注 册:2007-12-9
第
4
楼
收藏
得分:0
谢谢这位仁兄啊 ~~~~·终于解决了!
还是现代人思维活跃啊 ~~~~我问老师,他们都说没见过!
呵呵呵…………
龙的图腾
2007-12-13 21:23
举报帖子
使用道具
赠送鲜花
玉琪龙
等 级:
新手上路
帖 子:41
专家分:0
注 册:2007-12-9
第
5
楼
收藏
得分:0
请再指教一下啊~~~~~
那你怎么在你上面写的程序中,怎么在主函数中用那个静态变量呢?
#include <iostream>
using namespace std;
template<class T>
class A{
public:
A(T n):v2(n){}
static T v1;
const T v2;
static const T v3;
};
template<class T>
T A<T>::v1=1;
template<class T>
T A<T>::v3=1;
int main(){
A<int> a(10);
cout<<"v2="<<a.v2<<endl;
cout<<"v3="<<A::v3;//这个v3怎么用啊?
printf("%d",sizeof(A<int>));
getchar();
}
龙的图腾
2007-12-13 22:49
举报帖子
使用道具
赠送鲜花
玉琪龙
等 级:
新手上路
帖 子:41
专家分:0
注 册:2007-12-9
第
6
楼
收藏
得分:0
先谢谢这位仁兄啊!
首先,七楼的那个程序是复制你的,我只是简单的改动一下,在机子上运行是没有错误的。
另外,“static const必须在声明的时候就初始化”我不知对不对,但是,我在c++6.0
运行时老是编译错误~~但是,改成“template<class T>
T A<T>::v3=1;
”之后就能通过编译!并且结果正确。
最后十分感谢您啊~~~就剩一个问题了,就是上面的那一个"static const"问题。
龙的图腾
2007-12-14 13:10
举报帖子
使用道具
赠送鲜花
玉琪龙
等 级:
新手上路
帖 子:41
专家分:0
注 册:2007-12-9
第
7
楼
收藏
得分:0
谢谢楼上的朋友啊!
我懂了,也请大家支持哦
龙的图腾
2007-12-14 15:05
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
谁知道在c++中怎么在模板中使用静态变量啊?
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.035966 second(s), 8 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved