luqingfei@C++
為中華之崛起而崛起!
兼聽則明,偏聽則暗。
程序文件和預(yù)處理器指令習(xí)題
共有4道題。
1,有一個程序調(diào)用了兩個函數(shù)print_this(const string& s)和print_that(const string& s),這兩個函數(shù)又調(diào)用第三個函數(shù)print(const string& s),輸出傳送給它的字符串。
在4個源文件中實現(xiàn)這3個函數(shù)和main()函數(shù),并提供3個頭文件,分別包含print_this()、print_that()和print()的原型。確保頭文件只包含一次,main.cpp包含的#include語句數(shù)量最少。
2,修改上題的程序,使print()函數(shù)使用一個全局整數(shù)變量來計算它被調(diào)用的次數(shù)。在main()調(diào)用print_this()和print_that()后,輸出這個變量的值。
3,在print.h頭文件中,刪除print()的已有原型,再創(chuàng)建兩個命名空間print1和print2,每個命名空間都包含一個函數(shù)print(const string& s)。這些函數(shù)都有相同的函數(shù)簽名,區(qū)分它們的唯一方式是命名空間的名稱。在print.cpp文件中實現(xiàn)這兩個函數(shù),輸出命名空間的名稱和字符串。
現(xiàn)在讓print_this()調(diào)用在命名空間print1中聲明的函數(shù),讓print_that()調(diào)用在命名空間print2中聲明的函數(shù)。運行程序,驗證是否調(diào)用了正確的函數(shù)。
提示:從上面可以看出,在print_this()和print_that()中調(diào)用print()函數(shù)有三種不同的方式(即三種不同的語法形式)。
4,修改main()例程,只有定義了預(yù)處理器符號DO_THIS,才能調(diào)用print_this()。否則,就調(diào)用print_that()。
修改代碼,定義一個宏P(guān)RINT(),在定義了DO_THIS后,就讓PRINT(abc)——注意沒有引號——調(diào)用print_this("abc"),否則就調(diào)用print_that("abc")。
--------
4道題的代碼結(jié)構(gòu)差不多,每道題都運用了一些C++的基本技巧:
有函數(shù)原型的聲明,頭文件的包含,避免重復(fù)定義,命名空間的使用,用預(yù)處理器指令來控制代碼塊等等技巧。
太懶了。
現(xiàn)貼出最終后一題的代碼,其它的都差不多。這些都是比較基礎(chǔ),哈哈,我剛學(xué)C++幾個月,大家不要笑我。
把這些基礎(chǔ)的東西貼在這里,留著我以后復(fù)習(xí)。哈哈!
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++基礎(chǔ)
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
使用lib.exe生成.lib文件
如何區(qū)分導(dǎo)入庫和靜態(tài)庫
lib文件
[轉(zhuǎn)]動態(tài)鏈接庫、靜態(tài)庫、import庫區(qū)別
智能指針auto_ptr運用實例:常數(shù)型智能指針的特性
智能指針auto_ptr運用實例:移轉(zhuǎn)擁有權(quán)的行為
C++入門經(jīng)典:(一)基本概念
make工具的用法
什么是Makefile
虛函數(shù)、多態(tài)性 練習(xí)題一
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
導(dǎo)航
C++博客
首頁
新隨筆
聯(lián)系
聚合
管理
<
2009年3月
>
日
一
二
三
四
五
六
22
23
24
25
26
27
28
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
統(tǒng)計
隨筆 - 105
文章 - 0
評論 - 31
引用 - 0
留言簿
(6)
給我留言
查看公開留言
查看私人留言
隨筆分類
(109)
ACM/ICPC(3)
(rss)
Books(4)
(rss)
C++基礎(chǔ)(31)
(rss)
MFC
(rss)
Win32匯編程語言序設(shè)計(21)
(rss)
Windows(6)
(rss)
Windows SDK
(rss)
反匯編(1)
(rss)
匯編語言基礎(chǔ)學(xué)習(xí)(22)
(rss)
計算機基礎(chǔ)知識(3)
(rss)
開發(fā)工具(1)
(rss)
軟件工程(4)
(rss)
生活(1)
(rss)
數(shù)據(jù)結(jié)構(gòu)與算法(5)
(rss)
團(tuán)隊(1)
(rss)
文摘(3)
(rss)
游戲開發(fā)(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群技術(shù)論壇
孔雀
輪子哥
羅朝輝(飄飄白云)
帥子
我住包子山
小時候可靚了
游戲大觀
站在大世界
Game
17173
游戲開發(fā)資源網(wǎng)
Life
劉思妍
青青精品兒童服飾
清泉戶外網(wǎng)
小輝的視頻庫
NodeJs
Node入門
Python
Python
Useful Webs
80x86匯編語言
boost.org
VC 驛站
woaidongmao
山地車
編程愛好者
科學(xué)網(wǎng)
農(nóng)行貸款計算器
思維導(dǎo)圖
大牛
云風(fēng)的 BLOG
搜索
積分與排名
積分 - 210432
排名 - 124
最新評論
1.?re: 虛函數(shù)、多態(tài)性 練習(xí)題一
評論內(nèi)容較長,點擊標(biāo)題查看
--luz
2.?re: Win32匯編--圖形操作--GDI原理
感謝
--11
3.?re: Win32匯編--需要了解的基礎(chǔ)知識
哇,哥,連書里的內(nèi)容都打上了,這花了不少時間吧
。。。。。。
--solq
4.?re: [轉(zhuǎn)]各種字符編碼方式詳解及由來(ANSI,GB2312,GBK,UNICODE,UTF-8)
哥們寫得不錯,易懂
--wsh
5.?re: 類繼承練習(xí)題一
評論內(nèi)容較長,點擊標(biāo)題查看
--scor
6.?re: Win32匯編--圖形操作--GDI原理
好,十分有用
--Jet
7.?re: 數(shù)學(xué)的魅力:取余運算還可以這樣
我也認(rèn)為數(shù)學(xué)真的是很美的
--replica watches
8.?re: 匯編語言--使用BIOS進(jìn)行鍵盤輸入和磁盤讀寫
評論內(nèi)容較長,點擊標(biāo)題查看
--abcgril
9.?re: 10個小故事(轉(zhuǎn)自羅云彬的編程樂園)
好故事啊,學(xué)習(xí)啦!
--pa
10.?re: 數(shù)學(xué)的魅力:取余運算還可以這樣
我也是數(shù)學(xué)迷..
--designer handbags
11.?re: [轉(zhuǎn)]Windows下22個實用的代碼編輯器
gVim 挺好用的
--coreBugZJ
12.?re: Win32匯編--使用資源--菜單和加速鍵
初學(xué)的匯編(用NASM),仰慕!!
--coreBugZJ
13.?re: 我的天哪!感冒-->鼻炎-->咽喉炎
評論內(nèi)容較長,點擊標(biāo)題查看
--可靠上
14.?re: 初識exe程序反匯編小感[轉(zhuǎn)][未登錄]
好文章,挺詳細(xì)的
--KK
15.?re: C++標(biāo)準(zhǔn)程序庫—自修教程與參考手冊
評論內(nèi)容較長,點擊標(biāo)題查看
--yh
16.?re: 《C++入門經(jīng)典》(第3版)
評論內(nèi)容較長,點擊標(biāo)題查看
--路青飛
17.?re: [轉(zhuǎn)]Windows下22個實用的代碼編輯器
評論內(nèi)容較長,點擊標(biāo)題查看
--路青飛
18.?re: 我的天哪!感冒-->鼻炎-->咽喉炎
評論內(nèi)容較長,點擊標(biāo)題查看
--路青飛
19.?re: 《匯編語言》--讀后感
評論內(nèi)容較長,點擊標(biāo)題查看
--路青飛
20.?re: [轉(zhuǎn)]Windows下22個實用的代碼編輯器
一直用emacs
--Sephiroth Lee
閱讀排行榜
1.?匯編語言--call和ret指令 (24447)
2.?匯編語言--int指令(15499)
3.?Win32匯編--使用MASM(10890)
4.?一個簡單的游戲服務(wù)器框架(6174)
5.?初識exe程序反匯編小感[轉(zhuǎn)](5954)
6.?匯編語言--標(biāo)志寄存器 (5160)
7.?匯編語言--使用BIOS進(jìn)行鍵盤輸入和磁盤讀寫(5098)
8.?[轉(zhuǎn)]Windows下22個實用的代碼編輯器(4756)
9.?Windows環(huán)境變量設(shè)置(4650)
10.?Win32匯編--使用資源--對話框(一)(4434)
11.?使用lib.exe生成.lib文件(4174)
12.?Win32匯編--圖形操作--GDI原理(4162)
13.?Win32匯編--使用資源--對話框--在對話框中使用子窗口控件(2)(4128)
14.?匯編語言--寄存器(內(nèi)存訪問)(4007)
15.?Win32匯編--使用資源--菜單和加速鍵(3561)
16.?10個小故事(轉(zhuǎn)自羅云彬的編程樂園)(3147)
17.?Win32匯編--分析窗口程序(2973)
18.?C++實現(xiàn)插入排序(升序+降序)(2941)
19.?Win32匯編--使用資源--版本信息資源(2846)
20.?匯編中常見的一些錯誤信息(2790)
評論排行榜
1.?匯編語言--端口(4)
2.?《匯編語言》--讀后感(4)
3.?我的天哪!感冒-->鼻炎-->咽喉炎(3)
4.? [轉(zhuǎn)] 工作到底是為了什么?(2)
5.?虛函數(shù)、多態(tài)性 練習(xí)題一(2)
6.?[轉(zhuǎn)]Windows下22個實用的代碼編輯器(2)
7.?Win32匯編--圖形操作--GDI原理(2)
8.?數(shù)學(xué)的魅力:取余運算還可以這樣(2)
9.?C++標(biāo)準(zhǔn)程序庫—自修教程與參考手冊 (1)
10.?Win32匯編--需要了解的基礎(chǔ)知識(1)
11.?[轉(zhuǎn)]各種字符編碼方式詳解及由來(ANSI,GB2312,GBK,UNICODE,UTF-8)(1)
12.?10個小故事(轉(zhuǎn)自羅云彬的編程樂園)(1)
13.?類繼承練習(xí)題一(1)
14.?《C++入門經(jīng)典》(第3版)(1)
15.?匯編語言--使用BIOS進(jìn)行鍵盤輸入和磁盤讀寫(1)
16.?初識exe程序反匯編小感[轉(zhuǎn)](1)
17.?Win32匯編--使用資源--菜單和加速鍵(1)
18.?Win32匯編--使用資源--圖標(biāo)和光標(biāo)(0)
19.?Win32匯編--使用資源--位圖(0)
20.?Win32匯編--使用資源--對話框(一)(0)
Powered by:
C++博客
Copyright © luqingfei
狠狠色综合网站久久久久久久
|
久久国产精品久久
|
欧美日韩中文字幕久久伊人
|
久久成人国产精品免费软件
|
久久人人爽人爽人人爽av
|
国产精品18久久久久久vr
|
久久精品中文闷骚内射
|
久久亚洲欧美国产精品
|
av国内精品久久久久影院
|
国产精品久久久久国产A级
|
91久久婷婷国产综合精品青草
|
午夜精品久久久久久久久
|
国内精品久久久久影院薰衣草
|
一级做a爰片久久毛片毛片
|
久久综合亚洲鲁鲁五月天
|
久久强奷乱码老熟女网站
|
久久久精品国产sm调教网站
|
国内精品久久人妻互换
|
国产亚洲成人久久
|
亚洲色大成网站www久久九
|
久久婷婷五月综合97色
|
亚洲国产精品久久久久婷婷老年
|
国产日韩久久免费影院
|
欧美成人免费观看久久
|
久久精品人人槡人妻人人玩AV
|
日本精品久久久久中文字幕8
|
久久99精品久久久久久齐齐
|
国内精品九九久久精品
|
国产精品无码久久四虎
|
亚洲精品乱码久久久久久按摩
|
国产精品久久永久免费
|
区亚洲欧美一级久久精品亚洲精品成人网久久久久
|
日韩AV毛片精品久久久
|
无码AV波多野结衣久久
|
国产一区二区精品久久岳
|
囯产极品美女高潮无套久久久
|
久久精品国产亚洲Aⅴ香蕉
|
av色综合久久天堂av色综合在
|
日本道色综合久久影院
|
亚洲人成伊人成综合网久久久
|
狠狠精品干练久久久无码中文字幕
|