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.h
#ifndef PRINT_H
#define
PRINT_H
#include
<
iostream
>
#include
<
string
>
using
std::
string
;
namespace
print1
{
void
print(
const
string
&
s);
}
namespace
print2
{
void
print(
const
string
&
s);
}
#endif
print.cpp
//
print.cpp
#ifndef PRINT_CPP
#define
PRINT_CPP
#include
<
iostream
>
#include
<
string
>
#include
"
print.h
"
using
std::cout;
using
std::endl;
using
std::
string
;
void
print1::print(
const
string
&
s)
{
cout
<<
"
print1:print():
"
<<
s
<<
endl;
}
void
print2::print(
const
string
&
s)
{
cout
<<
"
print2:print():
"
<<
s
<<
endl;
}
#endif
printthat.h
//
printthat.h
#ifndef PRINTTHAT_H
#define
PRINTTHAT_H
#include
<
iostream
>
#include
<
string
>
using
std::
string
;
void
print_that(
const
string
&
s);
#endif
printthat.cpp
//
printthat.cpp
#ifndef PRINTTHAT_CPP
#define
PRINTTHAT_CPP
#include
<
iostream
>
#include
<
string
>
#include
"
printthat.h
"
#include
"
print.h
"
using
std::
string
;
void
print_that(
const
string
&
s)
{
print2::print(s);
}
#endif
printthis.h
//
printthis.h
#ifndef PRINTTHIS_H
#define
PRINTTHIS_H
#include
<
iostream
>
#include
<
string
>
using
std::
string
;
void
print_this(
const
string
&
s);
#endif
printthis.cpp
//
printthis.cpp
#ifndef PRINTTHIS_CPP
#define
PRINTTHIS_CPP
#include
<
iostream
>
#include
<
string
>
#include
"
printthis.h
"
#include
"
print.h
"
using
std::
string
;
void
print_this(
const
string
&
s)
{
print1::print(s);
}
#endif
main.cpp
//
main.cpp
#include
<
iostream
>
#include
<
string
>
using
std::
string
;
#include
"
printthis.h
"
#include
"
printthat.h
"
//
#define DO_THIS
#ifdef DO_THIS
#define
PRINT(arg) print_this(#arg)
#else
#define
PRINT(arg) print_that(#arg)
#endif
void
main()
{
PRINT(abc);
}
posted on 2009-02-18 16:26
luqingfei
閱讀(445)
評論(0)
編輯
收藏
引用
所屬分類:
C++基礎
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
使用lib.exe生成.lib文件
如何區分導入庫和靜態庫
lib文件
[轉]動態鏈接庫、靜態庫、import庫區別
智能指針auto_ptr運用實例:常數型智能指針的特性
智能指針auto_ptr運用實例:移轉擁有權的行為
C++入門經典:(一)基本概念
make工具的用法
什么是Makefile
虛函數、多態性 練習題一
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
導航
C++博客
首頁
新隨筆
聯系
聚合
管理
<
2025年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
統計
隨筆 - 105
文章 - 0
評論 - 31
引用 - 0
留言簿
(6)
給我留言
查看公開留言
查看私人留言
隨筆分類
(109)
ACM/ICPC(3)
(rss)
Books(4)
(rss)
C++基礎(31)
(rss)
MFC
(rss)
Win32匯編程語言序設計(21)
(rss)
Windows(6)
(rss)
Windows SDK
(rss)
反匯編(1)
(rss)
匯編語言基礎學習(22)
(rss)
計算機基礎知識(3)
(rss)
開發工具(1)
(rss)
軟件工程(4)
(rss)
生活(1)
(rss)
數據結構與算法(5)
(rss)
團隊(1)
(rss)
文摘(3)
(rss)
游戲開發(3)
(rss)
隨筆檔案
(105)
2013年7月 (4)
2012年5月 (3)
2011年2月 (1)
2011年1月 (2)
2010年11月 (7)
2010年10月 (2)
2010年9月 (10)
2010年8月 (34)
2010年7月 (11)
2010年6月 (3)
2009年4月 (5)
2009年3月 (10)
2009年2月 (13)
Blogers
batch 共享空間
Codes of Sephiroth
doing5552
flyman
itech
jackyxinli
玩音頻播放器的貓咪
kevinlynx
lai3d
luqingfei@.net
megax
mzty
netboy
oxft
匯編高手
SpringSnow
tonykee
tx7do
蓋莫游戲引擎
匯編語言 - IT群技術論壇
孔雀
輪子哥
羅朝輝(飄飄白云)
帥子
我住包子山
小時候可靚了
游戲大觀
站在大世界
Game
17173
游戲開發資源網
Life
劉思妍
青青精品兒童服飾
清泉戶外網
小輝的視頻庫
NodeJs
Node入門
Python
Python
Useful Webs
80x86匯編語言
boost.org
VC 驛站
woaidongmao
山地車
編程愛好者
科學網
農行貸款計算器
思維導圖
大牛
云風的 BLOG
搜索
積分與排名
積分 - 211495
排名 - 122
最新評論
1.?re: 虛函數、多態性 練習題一
評論內容較長,點擊標題查看
--luz
2.?re: Win32匯編--圖形操作--GDI原理
感謝
--11
3.?re: Win32匯編--需要了解的基礎知識
哇,哥,連書里的內容都打上了,這花了不少時間吧
。。。。。。
--solq
4.?re: [轉]各種字符編碼方式詳解及由來(ANSI,GB2312,GBK,UNICODE,UTF-8)
哥們寫得不錯,易懂
--wsh
5.?re: 類繼承練習題一
評論內容較長,點擊標題查看
--scor
6.?re: Win32匯編--圖形操作--GDI原理
好,十分有用
--Jet
7.?re: 數學的魅力:取余運算還可以這樣
我也認為數學真的是很美的
--replica watches
8.?re: 匯編語言--使用BIOS進行鍵盤輸入和磁盤讀寫
評論內容較長,點擊標題查看
--abcgril
9.?re: 10個小故事(轉自羅云彬的編程樂園)
好故事啊,學習啦!
--pa
10.?re: 數學的魅力:取余運算還可以這樣
我也是數學迷..
--designer handbags
11.?re: [轉]Windows下22個實用的代碼編輯器
gVim 挺好用的
--coreBugZJ
12.?re: Win32匯編--使用資源--菜單和加速鍵
初學的匯編(用NASM),仰慕!!
--coreBugZJ
13.?re: 我的天哪!感冒-->鼻炎-->咽喉炎
評論內容較長,點擊標題查看
--可靠上
14.?re: 初識exe程序反匯編小感[轉][未登錄]
好文章,挺詳細的
--KK
15.?re: C++標準程序庫—自修教程與參考手冊
評論內容較長,點擊標題查看
--yh
16.?re: 《C++入門經典》(第3版)
評論內容較長,點擊標題查看
--路青飛
17.?re: [轉]Windows下22個實用的代碼編輯器
評論內容較長,點擊標題查看
--路青飛
18.?re: 我的天哪!感冒-->鼻炎-->咽喉炎
評論內容較長,點擊標題查看
--路青飛
19.?re: 《匯編語言》--讀后感
評論內容較長,點擊標題查看
--路青飛
20.?re: [轉]Windows下22個實用的代碼編輯器
一直用emacs
--Sephiroth Lee
閱讀排行榜
1.?匯編語言--call和ret指令 (24473)
2.?匯編語言--int指令(15521)
3.?Win32匯編--使用MASM(10919)
4.?一個簡單的游戲服務器框架(6181)
5.?初識exe程序反匯編小感[轉](5963)
6.?匯編語言--標志寄存器 (5167)
7.?匯編語言--使用BIOS進行鍵盤輸入和磁盤讀寫(5115)
8.?[轉]Windows下22個實用的代碼編輯器(4765)
9.?Windows環境變量設置(4665)
10.?Win32匯編--使用資源--對話框(一)(4467)
11.?使用lib.exe生成.lib文件(4211)
12.?Win32匯編--圖形操作--GDI原理(4191)
13.?Win32匯編--使用資源--對話框--在對話框中使用子窗口控件(2)(4141)
14.?匯編語言--寄存器(內存訪問)(4014)
15.?Win32匯編--使用資源--菜單和加速鍵(3575)
16.?10個小故事(轉自羅云彬的編程樂園)(3154)
17.?Win32匯編--分析窗口程序(3004)
18.?C++實現插入排序(升序+降序)(2949)
19.?Win32匯編--使用資源--版本信息資源(2866)
20.?匯編中常見的一些錯誤信息(2810)
評論排行榜
1.?匯編語言--端口(4)
2.?《匯編語言》--讀后感(4)
3.?我的天哪!感冒-->鼻炎-->咽喉炎(3)
4.? [轉] 工作到底是為了什么?(2)
5.?[轉]Windows下22個實用的代碼編輯器(2)
6.?虛函數、多態性 練習題一(2)
7.?數學的魅力:取余運算還可以這樣(2)
8.?Win32匯編--圖形操作--GDI原理(2)
9.?類繼承練習題一(1)
10.?[轉]各種字符編碼方式詳解及由來(ANSI,GB2312,GBK,UNICODE,UTF-8)(1)
11.?《C++入門經典》(第3版)(1)
12.?Win32匯編--使用資源--菜單和加速鍵(1)
13.?10個小故事(轉自羅云彬的編程樂園)(1)
14.?C++標準程序庫—自修教程與參考手冊 (1)
15.?初識exe程序反匯編小感[轉](1)
16.?Win32匯編--需要了解的基礎知識(1)
17.?匯編語言--使用BIOS進行鍵盤輸入和磁盤讀寫(1)
18.?匯編語言--直接定址表(0)
19.?《Windows環境下32位匯編語言程序設計》--羅云彬(0)
20.?Win32匯編--準備編程環境(0)
Powered by:
C++博客
Copyright © luqingfei
热re99久久精品国99热
|
99久久综合狠狠综合久久止
|
国产成人精品久久
|
国产精品欧美久久久久天天影视
|
久久精品女人天堂AV麻
|
久久久久国色AV免费观看
|
久久精品中文无码资源站
|
国产Av激情久久无码天堂
|
99久久无码一区人妻
|
77777亚洲午夜久久多喷
|
久久久久国产精品
|
久久精品无码午夜福利理论片
|
久久夜色精品国产噜噜麻豆
|
一本色道久久88—综合亚洲精品
|
亚洲香蕉网久久综合影视
|
久久本道综合久久伊人
|
久久人人爽人人爽人人片av麻烦
|
国产精品久久久福利
|
久久无码中文字幕东京热
|
久久99中文字幕久久
|
久久久久亚洲AV成人网人人网站
|
91精品国产综合久久婷婷
|
久久亚洲国产最新网站
|
国产激情久久久久影院老熟女免费
|
久久久亚洲欧洲日产国码是AV
|
一本色道久久88精品综合
|
国内精品久久久久久久亚洲
|
久久99国产综合精品女同
|
2021国产精品久久精品
|
亚洲人成网站999久久久综合
|
狠狠色丁香婷婷久久综合不卡
|
色偷偷88888欧美精品久久久
|
综合久久精品色
|
天天影视色香欲综合久久
|
国产精品无码久久四虎
|
品成人欧美大片久久国产欧美
|
日韩精品久久久肉伦网站
|
日产精品99久久久久久
|
亚洲欧美日韩久久精品第一区
|
久久久高清免费视频
|
天天综合久久一二三区
|