社区
非技术区
帖子详情
神奇C++问题(6)
HaoGeGe
2001-05-17 08:06:00
请问它的输出结果?
#include <iostream>
using namespace std;
struct C;
struct D {
void operator*(D) { cout << "one\n"; }
} C;
struct E {
void operator*(E) { cout << "two\n"; }
} F;
struct F;
int main(){
C* C;
F* F;
return 0;
}
...全文
258
17
打赏
收藏
神奇C++问题(6)
请问它的输出结果? #include using namespace std; struct C; struct D { void operator*(D) { cout << "one\n"; } } C; struct E { void operator*(E) { cout << "two\n"; } } F; struct F; int main(){ C* C; F* F; return 0; }
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
holyfire
2001-05-17
打赏
举报
回复
还是先看看楼下的答案吧。
HaoGeGe
2001-05-17
打赏
举报
回复
one
HaoGeGe
2001-05-17
打赏
举报
回复
E * C 将定义一个指向E类的指针C.
bloodshed Dev-C++挺好用的.还是免费的.
强烈推介.强烈推介.强烈推介.
http://www.bloodshed.net/devcpp.html
holyfire
2001-05-17
打赏
举报
回复
请问一下你的结果你什么
holyfire
2001-05-17
打赏
举报
回复
BC++3.1,呵呵是我弄错了,把两次的结果看成了一次。
HaoGeGe
2001-05-17
打赏
举报
回复
holyfire没有啊,只有一个one
你用的是什么编译器啊?
holyfire
2001-05-17
打赏
举报
回复
但是如何说是指向E呢,E不是对象啊,还有为何他也触发了void operator*(D) { cout << "one\n"; }呢,这个程序结果为
one
one
HaoGeGe
2001-05-17
打赏
举报
回复
E * C 将定义一个指向E的指针C.
请注意上一句的C是一个全局变量.
holyfire
2001-05-17
打赏
举报
回复
int main(){
C* C;
E* C;
return 0;
}
请解释一下E * C 这时编译器是如何解释的呢?
HaoGeGe
2001-05-17
打赏
举报
回复
cber做得很对的地方在于他指出了
C* C;
F* F;
等于
C.operator*(C);
F.operator*(F);
即那两句并不是声明了两个指针.
而是调用了对象C的成员函数.
即可以看到左边的C实际上不是类而是对象.
所以,当类和对象重名时,类名将被隐藏.
所以,如果要申明的话应该用更明确的语句.
即
struct C* C;
holyfire
2001-05-17
打赏
举报
回复
我还是不明白当类和对象重名时,编译器将如何解释这个字符串。
还请指教。
HaoGeGe
2001-05-17
打赏
举报
回复
cber这不是什么障眼法,这是为了让你搞清楚当类和对象重名时.
编译器将如何解释这个字符串.
再问如何在main函数中设计语句可以打出.
只有one
或者
只有two
wao
2001-05-17
打赏
举报
回复
cber,佩服佩服。
如果工作中有人这样写程序,我会杀了他。呵呵。
cber
2001-05-17
打赏
举报
回复
程序等同于
#include <iostream>
using namespace std;
struct D {
void operator*(D) { cout << "one\n"; }
} C;
struct E {
void operator*(E) { cout << "two\n"; }
} F;
int main()
{
C.operator*(C);
F.operator*(F);
return 0;
}
其他的东西都是一些障眼法;-)
HaoGeGe
2001-05-17
打赏
举报
回复
此题关键在于要搞明白当类和对象重名时.
编译器将如何解释这个字符串.
再问如何在main函数中设计语句可以打出.
只有one
或者
只有two
holyfire
2001-05-17
打赏
举报
回复
敢问此题又妙在何处呢?
ninglng
2001-05-17
打赏
举报
回复
one
two
MyEclipse+WebSphere 通过 JNDI 连接 Sybase 简介
该文参考了 :
1. IBM WebSphere Application Server V5.1 System Management and Configuration - WebSphere Handbook Series
2. moyunhe 在 http://www.matrix.org.cn 发表的 WebSphere 中流行数据库连接池的配置 (Oracle 、 SQL Server 、 Sybase 、 MySQL), 该文地址 :
MyEclipse+WebSphere 通过 JNDI 连接 Sybase 简介
很久不来这里写东西了,一是工作忙,还有就是我是个初学者也写不出什么东西。这几天因工作需要学习了一下 WebSphere5.1, 在网上找了些资料终于了解了如何通过 JNDI 连接 Sybase 数据库。贴上来一个是怕自己以后忘了,另外就是希望能帮助像我一样苦苦探索的初学者。 ...
myeclipse jndi oracle,MyEclipse+WebSphere 通过 JNDI 连接 Sybase 简介
/*该代码借用了moyunhe文章中的TestPool类,详细内容请见该文参考*//**创建日期2005-11-5**更改所生成文件模板为*窗口>首选项>Java>代码生成>代码和注释*/packagetest.pool;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql...
WebSphere安装、系统部署、连接池
Websphere安装步骤 1、打开安装目录 2、双击安装文件install.exe 3、单击“下一步”按钮 4、单击“我既接受IBM条款也接受非IBM条款。”,再单击“下一步”按钮。 5、系统必备软件检查通过后,单击“下一步”按钮。 6、保持默认,单击“下一步”按钮。 7、指定产品安装位置,建议
高校如何构建科创知识图谱优化资源匹配?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
非技术区
15,445
社区成员
58,111
社区内容
发帖
与我相关
我的任务
非技术区
C/C++ 非技术区
复制链接
扫一扫
分享
社区描述
C/C++ 非技术区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章