标题:类模板的定义
只看楼主
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
结帖率:100%
 问题点数:0 回复次数:4 
类模板的定义
template<class T>
struct node
{
    T  a;
    struct node*p;
    struct node<T>*r;
};
我想问:
p与r的定义完全一样吗?
2016-09-02 17:46
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
你可以用typeid在运行时比较
还可以用p=r在编译时看它报不报错
2016-09-02 22:48
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
得分:0 
感谢版主的提醒,通过下面的例子,得出是等效的:
#include<iostream>
using namespace std;
template <class T>
struct node
{
    int data;
    node*p;
    node<T>*r;
};
 void main()
{
    node<int> one;
    cout<<typeid(one.p).name()<<endl;
    cout<<typeid(one.r).name()<<endl;
    node<double>two;
    cout<<typeid(two.p).name()<<endl;
    cout<<typeid(two.r).name()<<endl;
}

我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-09-03 03:37
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
回复 3楼 反脑控2016
不能比较名字
因为标准对名字没有任何规定,甚至所有类型叫同一个名字都是符合标准的
2016-09-03 10:53
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
得分:0 
多谢。我看不懂原版的MSDN,只能看看帖子,编编小程序测试测试而已,不知道标准。看样子我是遇见了大才,以后请多多赐教。

我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-09-03 11:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-468421-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.077105 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved