luqingfei@C++

为中华之崛起而崛起!
兼听则明,偏听则暗。

程序文件和预处理器指令习题

共有4道题。
1,有一个程序调用了两个函数print_this(const string& s)和print_that(const string& s),这两个函数又调用第三个函数print(const string& s),输出传送给它的字符串。
      在4个源文件中实现这3个函数和main()函数,并提供3个头文件,分别包含print_this()、print_that()和print()的原型。确保头文件只包含一次,main.cpp包含的#include语句数量最少。
2,修改上题的程序,使print()函数使用一个全局整数变量来计算它被调用的次数。在main()调用print_this()和print_that()后,输出这个变量的值。
3,在print.h头文件中,删除print()的已有原型,再创建两个命名空间print1和print2,每个命名空间都包含一个函数print(const string& s)。这些函数都有相同的函数签名,区分它们的唯一方式是命名空间的名称。在print.cpp文件中实现这两个函数,输出命名空间的名称和字符串。
      现在让print_this()调用在命名空间print1中声明的函数,让print_that()调用在命名空间print2中声明的函数。运行程序,验证是否调用了正确的函数。
     提示:从上面可以看出,在print_this()和print_that()中调用print()函数有三种不同的方式(即三种不同的语法形式)。
4,修改main()例程,只有定义了预处理器符号DO_THIS,才能调用print_this()。否则,就调用print_that()。
      修改代码,定义一个宏PRINT(),在定义了DO_THIS后,就让PRINT(abc)——注意没有引号——调用print_this("abc"),否则就调用print_that("abc")。

--------
4道题的代码结构差不多,每道题都运用了一些C++的基本技巧:
有函数原型的声明,头文件的包含,避免重复定义,命名空间的使用,用预处理器指令来控制代码块等等技巧。
太懒了。
现贴出最终后一题的代码,其它的都差不多。这些都是比较基础,哈哈,我刚学C++几个月,大家不要笑我。
把这些基础的东西贴在这里,留着我以后复习。哈哈!

print.h

print.cpp

printthat.h

printthat.cpp

printthis.h

printthis.cpp

main.cpp

posted on 2009-02-18 16:26 luqingfei 阅读(425) 评论(0)  编辑 收藏 引用 所属分类: C++基础


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

统计

留言簿(6)

随笔分类(109)

随笔档案(105)

Blogers

Game

Life

NodeJs

Python

Useful Webs

大牛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜