| C++语言常见问题解答(1)B |
| 责任编辑:admin 更新日期:2005-8-6 |
|
|
第17节:和 C 连结/和 C 的关系
--------------------------------
Q105:怎样从 C++ 中呼叫 C 的函数 "f(int,char,float)"?
Q106:怎样才能建一个 C++ 函数 "f(int,char,float)",又能被 C 呼叫?
Q107:为什麽 linker 有这种错误讯息:C/C++ 函数被 C/C++ 函数呼叫到?
Q108:该怎麽把 C++ 类别的物件传给/传自 C 的函数?
Q109:C 的函数能不能存取 C++ 类别的物件资料?
Q110:为什麽我总觉得 C++ 让我「离机器更远了」,不像 C 那样?
第18节:指向成员函数的指标
----------------------------
Q111:「指向成员函数的指标」和「指到函数的指标」的型态有差别吗?
Q112:怎样把指向成员函数的指标传给 signal handler、X event callback 等等?
Q113:当我想以成员函数做为中断服务常式 (ISR) 时,为什麽编译器产生(型态不
符)的错误?
Q114:为什麽我取不出 C++ 函数的位址?
Q115:怎样宣告指向成员函数的指标阵列?
第19节:容器类别与 template
-----------------------------
Q116:怎样自一个连结串列/杂凑表等等里面,插入/存取/改变元素?
Q117:「样版」(template)的用意是什麽?
Q118:"function template" 的语法/语意是什麽?
Q119:"class template" 的语法/语意是什麽?
Q120:什麽是「参数化型别」(parameterized type)?
Q121:「泛型」(genericity)是什麽?
第20节:程式库
----------------
Q122:怎样拿到 "STL"?
Q123:怎样 ftp 到 "Numerical Recipes" 附的程式?
Q124:为什麽我的执行档会这麽大?
第21节:特定系统的细节
------------------------
Q125:GNU C++ (g++) 把小程式造出大大的执行档,为什麽?
Q126:有 YACC 的 C++ 文法吗?
Q127:什麽是 C++ 1.2? 2.0? 2.1? 3.0?
Q128:如果签名编码标准化了,我能否将不同厂商编译器产生的程式码连结起来?
第22节:其他的技术和环境的事项
--------------------------------
⊙22A:其他的技术事项
Q129:为什麽有 static 资料成员的物件类别产生了 linker 错误?
Q130:"struct" 和 "class" 关键字差别在哪?
Q131:为什麽不能以函数的传回值来多载(overload)它?
Q132:什麽是「持续性」?什麽是「持续性物件」?
Q133:为什麽浮点数 (floating point) 这麽不精确?为什麽这段程式不会印出 0.43?
⊙22B:其他环境下的琐事
Q134:有任何 TeX 或 LaTeX 的巨集,能处理 "C++" 的留白效果(spacing)吗?
Q135:在哪儿可拿到 C++2LaTeX 这个 C++原始码的 LaTeX 美编工具(pretty
printer)?
Q136:该到哪里取得 "tgrind" 这个 C++/C/etc 的原始码美编工具?
Q137:有给 GNU emacs 编辑器用的 C++-mode 吗?有的话,该怎麽拿?
Q138:我要到哪儿得到和作业系统相关的 FAQs( 譬如:BC++、DOS、Windows 等等)?
Q139:为什麽我的 DOS C++ 程式说 "Sorry: floating point code not linked"
“抱歉,浮点运算程式码未连结进来”?
Q140:为什麽当我没执行 BC45 IDE 的话,BC++ 做出来的 Windows 应用程式就不能用?
=========================
● 1C:术语及常用的缩写
=========================
这儿是一些此文件所采用的缩写:
字汇 意义
==== ===========
fn function ,函数(单数型)
fns functions,函数(复数型)
param parameter,参数
ptr pointer,指标,C/C++ 的语法元素,宣告法: int * p;
ref reference,参考,C++ 的语法元素,宣告法: int & r;
OO object-oriented,物件导向
OOP object-oriented programming,物件导向程式设计
OOPL object-oriented programming language,物件导向语言
method 运作行为,"member function 成员函数" 的另一种说法
【译注】"method" 是源自 Smalltalk 的术语,很常用於 OO 界。
=======================================================
■□ 第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 或是 varargs.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。
「常见问题解答」文件每天 24 小时都可由 anonymous ftp (rtfm.mit.edu 的
/pub/usenet/comp.what.ever) 或是 e-mail server (寄一则内容为 "help" 的信到
mail-server@rtfm.mit.edu) 来取得。欲知详情,请见 "Introduction to the
*.answers newsgroups" 这份文件,它在 news.answers 或 news.announce.newusers
(这儿还有许多必须一读的文件)中找到。
========================================
Q2:我该怎麽提出「我的程式有毛病」的问题呢?
底下是一些建议,让 comp.lang.c++ 的读者能帮你解决程[1] [2] [3] [4] [5] 下一页 |
|
| 上一篇文章: C++语言常见问题解答(2) |
| 下一篇文章: C++语言常见问题解答(3) |
|
|
|
|