使用输出重载时发现的一个奇怪现象!!!
2005-11-13 23:15
393 查看
近日,使用重载输出时发现了一个奇怪现象,以下是我针对这个问题的简化程序:
//Node.h//定义了一个节点类
#include<iostream>
using namespace std;
template<class elemType>
class Node{
public :
elemType data;
Node *pl;//指向左节点
Node *pr;//指向右节点
public:
Node()
{
pl=NULL;
pr=NULL;
}
~Node()
{
countNode--;
}
friend ostream &operator<<(ostream& out,const Node<elemType>* node)
{
out<<node->data;
return out;
}
};
//imfor.h 一个测试类
template<class elemType>
struct Imfor{
Node<elemType> *p;
Imfor(Node<elemType>* node)
{
p=node;
}
Imfor()
{
}
friend ostream &operator<<(ostream &out,const Imfor<elemType> *imfor){
out<<imfor->p
return out;
}
};
//test.cpp 测试主函数
void main()
{Imfor<int> imfo;
Node<int> node;
node.data=2;
imfo.p=&node;
cout<<&imfo;
}
这样便可以输出imfo->p->data及输出结果为2
但是将test.cpp改成下面的:
void main()
{Imfor<int> *imfo=new Imfor<int>;
Node<int> node;
node.data=2;
imfo->p=&node;
cout<<imfo;
}
就会输出imfo(地址),也就是没有调用自己写的构造函数!
这是怎么解释呢?请高手指点
//Node.h//定义了一个节点类
#include<iostream>
using namespace std;
template<class elemType>
class Node{
public :
elemType data;
Node *pl;//指向左节点
Node *pr;//指向右节点
public:
Node()
{
pl=NULL;
pr=NULL;
}
~Node()
{
countNode--;
}
friend ostream &operator<<(ostream& out,const Node<elemType>* node)
{
out<<node->data;
return out;
}
};
//imfor.h 一个测试类
template<class elemType>
struct Imfor{
Node<elemType> *p;
Imfor(Node<elemType>* node)
{
p=node;
}
Imfor()
{
}
friend ostream &operator<<(ostream &out,const Imfor<elemType> *imfor){
out<<imfor->p
return out;
}
};
//test.cpp 测试主函数
void main()
{Imfor<int> imfo;
Node<int> node;
node.data=2;
imfo.p=&node;
cout<<&imfo;
}
这样便可以输出imfo->p->data及输出结果为2
但是将test.cpp改成下面的:
void main()
{Imfor<int> *imfo=new Imfor<int>;
Node<int> node;
node.data=2;
imfo->p=&node;
cout<<imfo;
}
就会输出imfo(地址),也就是没有调用自己写的构造函数!
这是怎么解释呢?请高手指点
相关文章推荐
- 关于空格和回车带来的输入输出不一致问题,使用了一个奇怪的replace
- 使用 Xcode 8 运行工程发现奇怪的日志输出
- IIS中使用PHP的SESSION的一个奇怪现象
- 在使用Struct时发现了一个有趣的现象;)[提醒Struct使用]
- 今天发现了c++符号重载的一个非常实用的使用实例。
- 在使用uiwebview时出现一个奇怪现象
- 调试时发现的一个奇怪的现象,static int = 0时无法自增
- VB.Net + asp.net的一个web系统,使用SQL2000数据库 现在运行时偶尔会出现一个奇怪现象,一个用户登录时,登录后的界面竟然是另一个用户
- 发现ASP的一个奇怪现象
- 今天发现一个奇怪的现象?
- 发现JS运算一个奇怪的现象
- 关于日期格式的一个奇怪的现象
- 发现一个奇怪的问题,关于文件名
- 历年世界杯冠军队伍如下,使用map存储这些队伍,使用年份作为key,冠军队伍名称作为value。 完成下面的功能: 1) 输入一个年份,如果当年有世界杯比赛,则输出获奖队伍,如果没有则输出“当年没有举
- 18、File类使用list方法的一点奇怪现象
- 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。
- MyEclipse中出现的一个非常奇怪的现象,高手请看
- 发现一个比SOAP,RPC等更爽的工具hessian 及在PHP中的使用介绍
- 一个奇怪的问题--关于文件输出
- 看朋友日志发现的一个ios下block相关的内存管理问题,非常奇怪,请大家帮忙一起来回答!