一个让诸位喷血而死的发现!!

yjh1982 2003-08-30 10:14:48
#include <iostream>
class ff
{
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
void foo(){};;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

};
int main(int argc, char* argv[])
{
std::cout<<sizeof(ff);
return 0;
}





编译通过!
...全文
71 167 打赏 收藏 转发到动态 举报
写回复
用AI写文章
167 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveCreatesBeauty 2003-11-13
  • 打赏
  • 举报
回复

>class是非执行体,struct也是;

请教楼主,在那里看到有对这个概念的区分,定义。渴望指教。
qq: 4001856 .
LoveCreatesBeauty 2003-11-13
  • 打赏
  • 举报
回复
另一个有关细节的问题,看看plainsong版主的解释,真是很佩服,艳羡plainsong :
http://expert.csdn.net/Expert/topic/2447/2447444.xml?temp=.9277765

回复人: plainsong(短歌) ( ) 信誉:151 2003-11-10 22:54:46 得分:6

cout对各种指针类型都输出地址,但唯独对[const] [volatile] [unsigned] char *当作字符串输出。
要输出地址就转换一下:
cout << (void*)&s[1];
LoveCreatesBeauty 2003-11-13
  • 打赏
  • 举报
回复
有些确实是比较模糊的。在类/结构中不能初始化,因为定义类时还没有分配内存。但是整型,枚举成员是可以初始的。这似乎也是有矛盾的。

for(int i = 1; i <= 10; i++)中的第一个分号是语句的结束符。而for的句法也不能解释为for(expr1; expr2; expr3) ,因为int i = 1 没有值,它不是一个表达式。
dhyuser10 2003-10-30
  • 打赏
  • 举报
回复
up
Akagg 2003-09-06
  • 打赏
  • 举报
回复
眼睛都看酸了^_^
我从第一贴一贴不漏的看过来的,看了俩三个小时呵呵。本来一看楼主内容以为可以pass,结果却获益良多!连骂人的贴也都看了。说实话,还从没这样看过一个贴。
我自己也是这样,当花了大代价去学一个东西后,就会有成就感,然后……
现在才了解到,自己其实也很肤浅^_^,
不大会说话,总之……感慨!
eduhf_123 2003-09-06
  • 打赏
  • 举报
回复
希望几个高手把你们知道的实际情况都透漏出来,我从头到尾看过来,一个感觉就是好象大家说得都有道理,但我好象什么都没看懂——因为都说得语焉不详的……
开始我也以为是一个垃圾帖,但是看到后来,才发现,我在这个帖子上花的一个小时一点都没有浪费,真的是受益良多,感谢楼主提出了这个宝贵的问题让大家讨论、让我受益,再次表达对楼主的敬意;还有对几位达人的敬意——谢谢你们了……
oayaya 2003-09-06
  • 打赏
  • 举报
回复
;
ringphone 2003-09-06
  • 打赏
  • 举报
回复
bm1408(嗔!我心己乱,万物皆沉,唯伊也!独醉!)
你可以这样理解!
CLASS是一个类,他有区加与STRUCT,而其中之一就是CLASS可是包含函数,而STRUCT不可以的!
即然可以包含函数,那么就可以包含函数中应该有的东东!
===========================================================

你怎么会认为CLASS可以包含函数,而STRUCT不可以的?C++里STRUCT也可以包含函数的。
struct st
{
st(){}
int a;
};
你用C++编译器编译试试。
会不会跟楼主一样吐血?
cnswdevnet 2003-09-05
  • 打赏
  • 举报
回复
本来, 我的第二个帖子已经写好了(包括一套完整的分析和标准的出处), 正准备贴, 但却被骂回去了. 有无说服力, 支持不支持对我来说无所谓. 我不需要为纠正别人的错误费半天劲, 还要被骂, 靠, 我可不想当冤大头. 让她去错好了. 呵呵.
yaoxinyan 2003-09-05
  • 打赏
  • 举报
回复
msdn的垃圾就别在这讨论了!M$眼里从来就没有国际标准这回事,它要的是自己的垄断、自己制定的“标准”。

“我认为把单分号看成定义的必要性是不存在的,还是痛惜C++加入了不应加入的东西”

你自己实现过C++编译器吗?不用说整个编译器,就是语法分析的一小部分你自己动手实现过吗?如果你这么牛那不妨把自己的实现方案跟国际标准比比,看看哪个更简洁、更高效、更容易实现?

“我说我C++学了三年,那可是真正的三年多啊!”

C++标准委员会的任何一个人学C++、用C++、实现C++、改进C++的时间都比你多个七、八年,你有什么了不起的?别把自己很当一回事!连C++标准你都没看过就质疑别人,不是自大是什么?我研究C++也好几年了,难道这就说明我就很厉害?至少我从来没像你这样自信过。


其实你早就被驳倒了,只是你自己总不开窍而已。
yaoxinyan 2003-09-05
  • 打赏
  • 举报
回复
YXY言尽于此。
yaoxinyan 2003-09-05
  • 打赏
  • 举报
回复
这是我最后一个帖子。

1)你居然不知道ISO/IEC 14882:1998 是什么东西,我真的怀疑你是否认真地学了3年C++。C++标准的正式文档是在1998年发布的,ANSI作为美国在ISO的代表机构已经在1998年7月批准该文档为美国国家标准,随后ISO在9月正式批准该文档为国际标准!!!
关于ANSI和ISO两个机构在C++标准制定过程中的关系你可以看《C++语言的设计和演化》!!!
现在人们说的C++标准是ANSI C++同时也是ISO C++,因为两者都是100%一样的。学了3年居然未看过标准文档,你也够可以的。想当初1998年12月标准文档刚推出来的时候我就购买了一份研读。因此到今天我就知道单独一个“;”号也是一个declaration而你就不知道。

2)标准本身不能强制程序员写出什么风格的程序,看:

int
main (
) { ;
}

也难道不也是一个别扭的C++程序吗?你偏要写成这样标准也没办法管你啊!?
你对C++标准根本就一无所知,它应该做什么不应该做什么你都分不清,你还说什么自己喜欢C++,得了吧。因为别人写的程序风格不好就埋怨C++标准不好,你也真有自己的特色啊。
年轻人,你的见识还太少,好好读读前面我说的那本书,读完之后你会有收获的!

yjh1982 2003-09-05
  • 打赏
  • 举报
回复
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!楼主公告!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

1...我强调学了三年c++,不是为了吹嘘c++能力强,而是强调我喜爱C++;因为大二到现在,只有
三年多,没法更多:(
2...C++标准接受,我也只好接受.但我不想看到如此代码.公司却尽是,所以我决定..........
与公司say byebye:).......回家!!
3...所以以后不一定常来CSDN了,大家有说法的快点说啊!骂我比不理我好嘛:)
4...要是这个月没结帖,说明回家了,版主可以删除.......
金笛子 2003-09-05
  • 打赏
  • 举报
回复
向楼主学习,其实我觉的:楼主善于思考问题是值得学习的
所以我想这是一个csdn的必有的
这个思想有利于开发软件。读别人的代码可以提高自己的编程能力
同时,有个人的观点才会有新的软件出现。学习!
yjh1982 2003-09-05
  • 打赏
  • 举报
回复
我也不喜欢微软,但
"自己看看 ISO/IEC 14882:1998 的149-151页"

又有何说服力?ISO!看看编译器是用ANSI还是ISO吧!1998的也拿出来了,ISO的1998该不是ANSI的1993吧:(
cr2003 2003-09-05
  • 打赏
  • 举报
回复
^_^
yaoxinyan 2003-09-05
  • 打赏
  • 举报
回复
他能说出来吗?他只会说“你们都错了……其实”,然后就什么都没有了!
最讨厌这种人,浪费别人的时间,误导初学者!
本来大家还算讨论得挺正常的,他一来就搅局了,又没有真凭实据,光放屁!
maxcai 2003-09-05
  • 打赏
  • 举报
回复
大家也不要怪楼主了的,人都有不知道的.
cnswdevnet(跟皮虫) 也不要只骂他,让他说得多一点,大家也听一听,没道理了,再骂他也不晚,--最好不要动粗,会粗走那些新来的,不利于CSDN的发展
Bandry 2003-09-05
  • 打赏
  • 举报
回复
加分号也可以为了好看啊,反正编译后并不会增加可执行程序的长度
cnswdevnet 2003-09-05
  • 打赏
  • 举报
回复
对不起, 不贴当然就自动没了, CSDN的回复机制又不会帮我保存, 你说我费劲open/copy/paste/save/close, 留那个帖子干吗? 做种? 炫耀? 再说你们涨见识, 我挨骂, 于我何加之有? 我说了我不想当冤大头.
想骂我的 随便骂. 不过, 骂我的时候, 奉劝你先动动脑子, 我骗你干什么? 就为了挨你骂? 靠!!!
最后, 对真正想知道真相的同学, 我建议你去看看C++标准, 别 别人一说标准就把你吓得失去辨别真伪的能力. 这种东西究竟是有据可循, 有法可依的, 不是海阔天空吹牛皮没沿的.
加载更多回复(147)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧