荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: Second (石开), 信区: Program
标 题: C++语言常见问题解答(1-2)
发信站: 荔园晨风BBS站 (Wed Sep 19 11:57:02 2001), 转信
=======================================================
■□ 第2节:我该如何参与讨论?(发信之前请务必一读)
=======================================================
Q1:我该在哪个讨论区中发问?
Comp.lang.c++ 是讨论 C++语言本身最好的地方(譬如:C++ 程式设计、语法、风格
)。其他讨论区是用来讨论特定的系统(譬如:MS Windows 或是 UNIX),或是其他
和 C++语言不直接相关的主题(譬如:怎样使用你的编译器)。底下列出一些非常热
门的讨论区,并从它们的 FAQs 中摘录些片断,应该能让您明了它们最常讨论哪些课
题。
comp.os.ms-windows.programmer.tools
此区是用来讨论有关 Windows 软体发展系统工具的选择及使用。
comp.os.ms-windows.programmer.misc
此乃论及其馀 Windows 软体发展之事项。
[有个 FAQ 列表,列出所有 comp.os.ms-windows.programmer.* 讨论区]
FAQ 5.7.1. 在 DLL 中存取 C++ 的物件类别
FAQ 6.1.1. 以 MDI 子视窗做出对话框 [用 OWL]
FAQ 6.2.1. 把禁能的选项致能起来 [用 MFC]
FAQ 8.1.5. 使用 windows.h 的 STRICT 符号定义
FAQ 10. 程式设计参考资料
comp.os.msdos.programmer
许多信件都是关於程式语言产品的(主要是 Borland 和 Microsoft)。
FAQ 301. 怎样才能读取字元而不 [等待] Enter 键?
FAQ 412. 怎样读取、建立、更改及删除磁片标名?
FAQ 504. 怎样设定 COM 埠,以用它来传输资料?
FAQ 602. C 程式怎样才能送控制码给印表机?
FAQ 606. 怎样才能得知 Microsoft 滑鼠的位置及按钮状态?
FAQ 707. 怎样写常驻程式(TSR)工具?
FAQ B0. 怎样连系 [Borland, Microsoft] 等公司?
[注意:这份 FAQ 不在 rtfm.mit.edu 里;而在 Simtel
(譬如 oak.oakland.edu) in /pub/msdos/info/faqp*.zip 以及
Garbo (garbo.uwasa.fi) in /pc/doc-net/faqp*.zip]
comp.os.msdos.programmer.turbovision [Borland 的文字模式应用程式骨架]
comp.unix.programmer
FAQ 4.5) 怎样使用 popen() 开启行程以读写之?
FAQ 4.6) 怎样在 C 程式里 sleep() 一秒以内?
comp.unix.solaris (包含 SunOS 4.x 和 Solaris)
FAQ 4) Signal 入门
FAQ 5) 等待子行程 Exit
gnu.g++.help
FAQ: 到哪里找 C++ 的 demangler(反签名编码器)?
FAQ: 哪里有 Solaris 2.x 版的 gcc/g++ 位元档?
FAQ: 有 g++ 2.x 的文件吗?
gnu.g++.bug [g++ 的臭□列表 -- 请见 g++ 的文件]
comp.lang.c
FAQ 1.10:我搞糊涂了。NULL 保证一定是 0,但是 null 指标却不是?
FAQ 2.3: 那麽,在 C 里头「指标和阵列等价」是什麽意思?
FAQ 4.2: [为什麽 "printf("%d\n," i++ * i++);" 有问题?]
FAQ 7.1: 怎样写一个接收不定数目引数的函数? [stdarg.h 或是 v
arargs.h]
FAQ 10.4: 怎麽宣告一个指向某种函数的指标阵列,而该函数的传回值为
:指向另一个传回字元指标的函数?
并请参考看看 comp.graphics、comp.sources.wanted、comp.programming,以及
comp.object(它的 FAQ 是个很棒的 OOP 入门、术语观念概论文件)。请记住:
comp.std.c++ 是专门讨论和研议中的 ANSI/ISO C++ 标准方案(下文会提)“直接
”相关的事项。
同时到上述信区和 comp.lang.c++ 去问同一个问题,几乎是没必要的(你是知道的
,特定系统信区的读者不用机器语言写程式)。只因你的问题「真的很要紧」,就到
处发问,是个很坏的习惯。如果你在「正确的」信区没得到回音,且认为你非得在这
儿发信不可,请至少考虑一下,将这儿的回信重导回原来那个适当的信区。
在任何信区发问之前,你应当先读读它的 FAQ。你想问的可能就在上面,这样就可省
下你发信的时间,以及全世界数以千计的人类读你的信的时间。回答已经是 FAQ问题
的人,可能会因为白白浪费时间而烦扰不已;他们也可能会给你错误或不完整的解答
,因为他们也没看过 FAQ。
========================================
Q2:我该怎麽提出「我的程式有毛病」的问题呢?
底下是一些建议,让 comp.lang.c++ 的读者能帮你解决程式设计的问题。
1. 请读读上一个问题,以确定你的问题是针对 C++语言本身,而和你的程式设计系
统(譬如:绘图、印表机、设备……)或是编译环境(譬如:「整合环境挂了」
、「怎样消除xxxx警告讯息」、「怎样连结程式库」)完全无关。如果你想知道
为什麽你 OWL程式中的虚拟函数 CmOk() 没被呼叫到,你的问题可能比较适合
放
在 Windows程式设计的信区。如果你能写个独立的小程式,而它会让编译器产生
和你那个 OWL程式同样的错误讯息或行为的话,就可以放到 comp.lang.c++
了,
其他系统的 C++程式员可能帮得上忙。
2. 「信件标题」栏位要有意义。像是「C++ 程式」这样的标题太空泛了,「new 一
个多维阵列的问题」就很好。不要用一堆惊叹号,穷嚷嚷著「救命啊」,或是开
玩笑的用「SEX SEX SEX」这种标题。如果你认为该问题和你的编译器有关,最
好
在标题栏中道出编译器和版本编号。
3. 列出完整的、可编译得过去的程式码。要从人类的语言叙述里,去除错或是重建
回一个程式,是极为困难的事。「完整的程式码」指的是:任何被用到的型别、
函数都要宣告出来,被用到的标头档都要 #include 进来……等等。请将程式
码
裁减到只留必要的部份,我们并不需要那些执行起来(甚至连结时)“有用的”
东西,我们只须能重现出你的错误讯息(可能在不同的编译器中)就行了。「可
编译得过去」指的是:不要含有一堆未注解掉的 ... 这种删节号,或是各行行
首
的行号:
14: #include
15: class Foo { ... }; // 像这样就是很讨人厌
的东西!
将你的程式组织成线性结构,不要让我们再切割、制造些标头档案。请仔细输入
你的程式码--我们通常不容易判断:某个地方只是你的打字错误,抑或它真的
就是你的问题所在。尽量改用编辑器的「剪贴」或「插入档案」功能。
4. 列出你用的编译器、编译器版本,以及你使用的系统。我知道我刚刚说过:特定
系统的问题要去特定的信区发问,但和编译器有关的资讯,常常对侦查问题有帮
助(「喔,我记得 Acme 1.2 在这方面有很多毛病」),这也顺便提醒了那些
编
译器的用户:小心那些毛病。
5. 把编译器、连结器的选项写出来,以及你用来建程式所用的程式库。
6. 把错误讯息和何处发生错误的资料写出来。像是「虚拟函数不能用了」并没告诉
我们这是个编译时段、连结时段还是执行期的问题。如果这问题是执行期发生的
,请把它的行为,和任何相关的系统设定资讯列出来。
7. 在签名档中列出真的能用的 e-mail 地址。如果你信件的 "From:" 一栏有错的
话
,请通知你的系统管理者。在它修复前,於你的信件标头中加入 "Reply-To:"
一
栏,填上你正确的 e-mail 地址。
8. 请读读这份 FAQ 的其他部份--可能你的问题,或是很相关的问题就在这儿。
谢谢您,并希望以上的建议能协助您找到问题的解答。
--
既然热爱生命
那么,
一切都在意料之中。
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.52.239]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店