关于 typename 的用法

brave_heart 2003-05-16 04:20:24
下面的程序,编译通不过

#include <iostream>
using namespace std;

template <class T>
class MyClass
{
public:
typename T::SubType;// *ptr; // 注意这一行

SubType *ptr;
};

class Q
{
public:
typedef int SubType;
int x;
};

int main()
{
MyClass<Q> x;
x;
return 0;
}

如果这样写,就没有问题了,why???
template <class T>
class MyClass
{
public:
typename T::SubType *ptr; // 注意这一行

//SubType *ptr;
};
...全文
44 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
brave_heart 2003-05-17
这个问题我想明白了

typename T::SubType; // 这就是一个类型,跟int一样
你能在class里面直接这样写吗?
class AA {
int;
};
不能,所以只能
typename T::SubType *ptr;
回复
meteor135 2003-05-17
以下是MSDN里的原话,怎么感觉跟楼上说的相左?
typename
C++ Specific —>

typename identifier;

Use this keyword only in template definitions. This keyword tells the compiler that an unknown identifier is a type. For example:

template<class T> class X {
typename T::Y; // treat Y as a type

Y m_y;
};
This keyword can also be used in place of class in template parameter lists. For example, the following statements are identical:

template<class T1, class T2>...
template<typename T1, typename T2>...
END C++ Specific
回复
woshinzg 2003-05-16
typename T::SubType;// *ptr; // 注意这一行

SubType *ptr;// 这里的SubType 系统不认。。。不知道是哪儿来的看看 typename 格式


—————————————————————————————————
因为陌生,所以勇敢,因为距离,所以美丽。
QQ:6785267
回复
Muf 2003-05-16
typename本来就不是这么用的。
请看typename的说明。
回复
cxjddd 2003-05-16
template <class T>
class MyClass
{
public:
// typename T::SubType;// *ptr; // 注意这一行
typedef typename T::SubType SubType; // 这样呢?

SubType *ptr;
};
回复
brave_heart 2003-05-16
以下是编译器的出错信息

error C2602: 'Q::SubType' is not a member of a base class of 'MyClass<class Q>'
回复
zliang520 2003-05-16
问题提示是说不是基类的成员.
msdnl里面没有具体说明,按理说这样应该可以的
回复
相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
帖子事件
创建了帖子
2003-05-16 04:20
社区公告
暂无公告