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
閱讀(440)
評論(0)
編輯
收藏
引用
所屬分類:
C++基礎
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
使用lib.exe生成.lib文件
如何區分導入庫和靜態庫
lib文件
[轉]動態鏈接庫、靜態庫、import庫區別
智能指針auto_ptr運用實例:常數型智能指針的特性
智能指針auto_ptr運用實例:移轉擁有權的行為
C++入門經典:(一)基本概念
make工具的用法
什么是Makefile
虛函數、多態性 練習題一
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
導航
C++博客
首頁
新隨筆
聯系
聚合
管理
<
2010年7月
>
日
一
二
三
四
五
六
27
28
29
30
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
31
1
2
3
4
5
6
7
統計
隨筆 - 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
搜索
積分與排名
積分 - 210487
排名 - 124
最新評論
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指令 (24447)
2.?匯編語言--int指令(15499)
3.?Win32匯編--使用MASM(10892)
4.?一個簡單的游戲服務器框架(6174)
5.?初識exe程序反匯編小感[轉](5954)
6.?匯編語言--標志寄存器 (5161)
7.?匯編語言--使用BIOS進行鍵盤輸入和磁盤讀寫(5098)
8.?[轉]Windows下22個實用的代碼編輯器(4756)
9.?Windows環境變量設置(4651)
10.?Win32匯編--使用資源--對話框(一)(4435)
11.?使用lib.exe生成.lib文件(4175)
12.?Win32匯編--圖形操作--GDI原理(4169)
13.?Win32匯編--使用資源--對話框--在對話框中使用子窗口控件(2)(4128)
14.?匯編語言--寄存器(內存訪問)(4007)
15.?Win32匯編--使用資源--菜單和加速鍵(3561)
16.?10個小故事(轉自羅云彬的編程樂園)(3148)
17.?Win32匯編--分析窗口程序(2975)
18.?C++實現插入排序(升序+降序)(2941)
19.?Win32匯編--使用資源--版本信息資源(2847)
20.?匯編中常見的一些錯誤信息(2790)
評論排行榜
1.?匯編語言--端口(4)
2.?《匯編語言》--讀后感(4)
3.?我的天哪!感冒-->鼻炎-->咽喉炎(3)
4.? [轉] 工作到底是為了什么?(2)
5.?虛函數、多態性 練習題一(2)
6.?[轉]Windows下22個實用的代碼編輯器(2)
7.?Win32匯編--圖形操作--GDI原理(2)
8.?數學的魅力:取余運算還可以這樣(2)
9.?C++標準程序庫—自修教程與參考手冊 (1)
10.?Win32匯編--需要了解的基礎知識(1)
11.?[轉]各種字符編碼方式詳解及由來(ANSI,GB2312,GBK,UNICODE,UTF-8)(1)
12.?10個小故事(轉自羅云彬的編程樂園)(1)
13.?類繼承練習題一(1)
14.?《C++入門經典》(第3版)(1)
15.?匯編語言--使用BIOS進行鍵盤輸入和磁盤讀寫(1)
16.?初識exe程序反匯編小感[轉](1)
17.?Win32匯編--使用資源--菜單和加速鍵(1)
18.?Win32匯編--使用資源--圖標和光標(0)
19.?Win32匯編--使用資源--位圖(0)
20.?Win32匯編--使用資源--對話框(一)(0)
Powered by:
C++博客
Copyright © luqingfei
国产精品18久久久久久vr
|
久久久久国色AV免费观看
|
亚洲综合伊人久久综合
|
国产精品女同久久久久电影院
|
无码任你躁久久久久久久
|
欧美大战日韩91综合一区婷婷久久青草
|
合区精品久久久中文字幕一区
|
久久天天婷婷五月俺也去
|
久久精品国产亚洲AV高清热
|
伊人久久免费视频
|
伊人久久大香线蕉亚洲
|
国产精久久一区二区三区
|
伊人色综合久久天天人手人婷
|
日本精品久久久久中文字幕
|
久久丫忘忧草产品
|
国产精品免费久久久久影院
|
久久久久人妻一区二区三区vr
|
久久精品无码一区二区三区日韩
|
精品久久久久久国产
|
久久精品成人
|
观看 国产综合久久久久鬼色 欧美 亚洲 一区二区
|
国内精品久久久久影院亚洲
|
日韩精品久久久久久
|
久久精品国产99久久无毒不卡
|
人妻中文久久久久
|
久久国产影院
|
精品久久人人妻人人做精品
|
国产亚洲欧美成人久久片
|
久久综合噜噜激激的五月天
|
久久福利资源国产精品999
|
久久久久国产
|
欧美日韩中文字幕久久久不卡
|
国产精品青草久久久久福利99
|
精品一区二区久久
|
久久狠狠色狠狠色综合
|
国产精品视频久久久
|
91精品国产91久久久久福利
|
7777久久亚洲中文字幕
|
久久国产色AV免费观看
|
www.久久99
|
欧美亚洲另类久久综合
|