Redian新闻
>
如何 define/initialize static data member of a class templ
avatar
如何 define/initialize static data member of a class templ# Programming - 葵花宝典
m*s
1
【 以下文字转载自 ChemEng 讨论区 】
发信人: smalltwo (小二), 信区: ChemEng
标 题: 怀俄明大学化工系招多相催化合成博士后两名
关键字: 博士后
发信站: BBS 未名空间站 (Sat May 3 13:43:53 2014, 美东)
主要方向为煤转油及煤转化工产品方面的催化剂合成及评估。有意者请发简历至[email protected]
uwyo.edu, Dr. Jin!
请帮忙互相转告!
avatar
m*t
2
妈妈腰病犯了,坐都坐不住,她说在国内犯病的时候是理疗看好的,就是一块布一样的
东西贴在背上,连到电脑上,然后电脑有不同的程序控制按摩什么的,这个对应的这边
应该看啥?是physical therapist还是chiropractor还是orthopaedic?跪谢跪谢,妈
妈还有不到一个月就要回国了,现在这样飞机都上不了啊,呜呜。
avatar
x*u
3
我叫trevor,人称小t.我5.5个月,最讨厌的食物是狗干粮
avatar
r*t
4
非 template 情况似乎比较清楚了,class template 里面的 static data
member 的定义和初始化有没有啥龟腚?
举个例子:
template
class StackWithCapacity : public stack_adapter
{
public:
typedef typename stack_adapter< Container>::size_type size_type;
private:
static const size_type capacity = 5;
};
capacity 是个 static const member, 我就直接在 class body 里面初始化了,
据 c++ primer,class body 外面还必须 define without initializer (虽然我我不这么做也能编译并运行正常). 这样我就在外面加
template
StackWithCapacity::capacity; // line 38
没想到编译不过(看不懂出错信息):
stackset.cpp:38: error: expected constructor, destructor, or type conversion
before ';' token
问题:1. 这个地方如何写才正确?2.如果不是 const, 就是 static size_type
capacity; 的话,应该在哪个地方 intialize and/or define?
谢谢!最小代码贴在后面:
// main.cpp
#include
#include
#include
#include
#include "stack.h"
using namespace std;
template
class StackWithCapacity : public stack_adapter< Container >
{
public:
// as .size method need access to size_type
typedef typename stack_adapter::size_type size_type;
typedef typename stack_adapter::value_type value_type;
bool isAtCapacity () {
return this->size() >= capacity;
}
void push( const value_type &value ) {
if (!isAtCapacity() )
stack_adapter< Container >::push( value );
else
cout << "error: stack full..." << endl;
}
private:
static const size_type capacity = 5;
};
template
size_type StackWCap::capacity;
int main(int argc, char* argv[]){}
//stack.h:
#ifndef STACK_H
#define STACK_H
template
class stack_adapter
{
private:
typedef T container_type;
container_type m_stack;
public:
typedef typename T::value_type value_type;
typedef typename T::size_type size_type;
void push(const value_type & value) {
this->m_stack.push_front( value );
}
void pop() {
this->m_stack.pop_front();
}
const value_type & top() const {
return this->m_stack.front(); // this is undefined when m_stack is empty
}
value_type & top() {
return this->m_stack.front();
}
size_type size() {
return this->m_stack.size();
}
};
#endif
avatar
g*o
5
去看chiropractor,上网搜你家附近的,找个口碑好的,赶紧去看吧。
avatar
x*u
6
我有一个大头,四个大脚
avatar
t*t
7
你定义对象不给类型的?

化有没有啥龟腚?举个例子:

【在 r****t 的大作中提到】
: 非 template 情况似乎比较清楚了,class template 里面的 static data
: member 的定义和初始化有没有啥龟腚?
: 举个例子:
: template
: class StackWithCapacity : public stack_adapter
: {
: public:
: typedef typename stack_adapter< Container>::size_type size_type;
: private:
: static const size_type capacity = 5;

avatar
L*D
8
也可以看针灸师:Acupuncturist
avatar
x*u
9
我喜欢观察家里的一个黄色不明生物
avatar
r*t
10
太乌龙了,可是
template
StackWithCapacity::size_type StackWithCapacity::
capacity;
or
template
size_type StackWithCapacity::capacity;
也出一模一样的错误,这个我实在是搞不懂。。

【在 t****t 的大作中提到】
: 你定义对象不给类型的?
:
: 化有没有啥龟腚?举个例子:

avatar
x*u
11
有时候不明生物会正面对着我,但是我还是不知道她是什么
avatar
t*t
12
template
typename StackWithCapacity::size_type StackWithCapacity::capacity;

太乌龙了,可是
template
StackWithCapacity::size_type StackWithCapacity::
capacity;
or
template
size_type StackWithCapacity::capacity;
也出一模一样的错误,这个我实在是搞不懂。。

【在 r****t 的大作中提到】
: 太乌龙了,可是
: template
: StackWithCapacity::size_type StackWithCapacity::
: capacity;
: or
: template
: size_type StackWithCapacity::capacity;
: 也出一模一样的错误,这个我实在是搞不懂。。

avatar
x*u
13
除了观察不明生物,我也喜欢看楼下发生的一切事情
我妈说我肯定会拿耗子。不过我不太明白她的意思~~
另外,妈妈说我有小蛮腰。和一个名叫葫芦的猫不一样。。
avatar
r*t
14
看到解答才惊觉此问好像在板上问过三四次了,幸苦师父了!

【在 t****t 的大作中提到】
: template
: typename StackWithCapacity::size_type StackWithCapacity::capacity;
:
: 太乌龙了,可是
: template
: StackWithCapacity::size_type StackWithCapacity::
: capacity;
: or
: template
: size_type StackWithCapacity::capacity;

avatar
h*r
15
时光飞逝如电。。。。。。
avatar
y*b
16
这个问题c++ primer就强调了必须用typename显式告诉编译器这是一个类型,
否则可能当作一个数据成员。

【在 r****t 的大作中提到】
: 非 template 情况似乎比较清楚了,class template 里面的 static data
: member 的定义和初始化有没有啥龟腚?
: 举个例子:
: template
: class StackWithCapacity : public stack_adapter
: {
: public:
: typedef typename stack_adapter< Container>::size_type size_type;
: private:
: static const size_type capacity = 5;

avatar
h*o
17
那个,那个黄色不明生物我也看了半天。。。。。。
avatar
c*e
18
08年的坑你也挖?
当时的小T都已经是大T了

【在 h********o 的大作中提到】
: 那个,那个黄色不明生物我也看了半天。。。。。。
avatar
h*o
19
是热carrier挖的, 我打醋的。

【在 c*******e 的大作中提到】
: 08年的坑你也挖?
: 当时的小T都已经是大T了

avatar
p*i
20
天,竟然是08年的,咋觉的就跟昨天一样呢。大T还小蛮腰---------------
avatar
a*8
21
哎呀,是08年的呀,还以为大T被tinker超过了,改名叫小T了呢。
avatar
a*3
22
那个不明生物像长毛兔。。。
avatar
b*x
23
慧眼啊!柴鱼看到要哭了吧!终于有人说她家兔子像兔子了。

【在 a*******3 的大作中提到】
: 那个不明生物像长毛兔。。。
avatar
x*u
24
I miss that puppy face !!
avatar
p*f
25
He looked mellow even when young.
avatar
a*3
26

可是她家兔兔刘海太长了。。。

【在 b**x 的大作中提到】
: 慧眼啊!柴鱼看到要哭了吧!终于有人说她家兔子像兔子了。
avatar
c*e
27
您是第一个一眼就看出来那个是兔子的!!!
好眼力!

【在 a*******3 的大作中提到】
:
: 可是她家兔兔刘海太长了。。。

avatar
t*g
28
ft
还顺带挖出我家的葫芦娃了
抗议抗议强烈抗议!

【在 x********u 的大作中提到】
: 我叫trevor,人称小t.我5.5个月,最讨厌的食物是狗干粮
avatar
Q*A
29
我还以为是狗。。一只长毛小狗

【在 b**x 的大作中提到】
: 慧眼啊!柴鱼看到要哭了吧!终于有人说她家兔子像兔子了。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。