1. 程式人生 > >【轉】.h和.cpp檔案的區別

【轉】.h和.cpp檔案的區別

首先,所有的程式碼是都可以放在一個cpp檔案裡面的。這對電腦來說沒有任何區別,

但對於一個工程來說,臃腫的程式碼是一場災難,非常不適合閱讀和後期維護,

所以.h和.cpp檔案更多的是對程式設計師的編寫習慣進行規範

用法

1、.h檔案直接#include到需要的.cpp檔案裡,就相當於把.h檔案的程式碼拷貝到.cpp檔案

2、.cpp檔案需要先自己生成.o檔案,把不同.o檔案連線生成可執行檔案。

      比如有3個cpp檔案:a.cpp、b.cpp、c.cpp,其中一個包含main()函式,需要生成test程式,

      步驟:

      1、生成3個.o檔案:cc -c a.cpp

                                   cc -c b.cpp

                                   cc -c c.cpp

            這樣就得到3個.o檔案:a.o、b.o、c.o

      2、連結生成test程式:cc -o test a.o b.o c.o

           就得到test可執行程式,輸入./test就可執行程式了。

規範

1、h檔案一般包含類宣告;

2、cpp檔案一般為同名h檔案定義所宣告的類函式

說明:一般可在cpp檔案直接新增main()就可以測試該模組功能。

例(g++):

 1 //point.c
 2 #include"point.h"
 3 #define DEBUG 1
 4 Point::Point(int _x,int _y){
 5     x=_x;
 6     y=_y;
 7 }
 8 void Point::ADD(Point _p){
 9     x+=_p.x;
10     y+=_p.y;
11   
12 ▽oid Point::Print(){
13     printf("(%d,%d)\n",x,y);
14 }
15 
16 #if DEBUG
17 int main(){
18     Point a(1,1);
19     Point b(2,2);
20     a.Print();
21     a.ADD(b);
22     a.Print();
23     return 0;
24 }
25 #endif

執行:

g++ -c point.c
g++ -o test point.o

獲得可執行程式test

執行test,可得到結果:

[[email protected] workstation]$ ./test
(1,1)
(3,3)

相關推薦

.h.cpp檔案區別

首先,所有的程式碼是都可以放在一個cpp檔案裡面的。這對電腦來說沒有任何區別, 但對於一個工程來說,臃腫的程式碼是一場災難,非常不適合閱讀和後期維護, 所以.h和.cpp檔案更多的是對程式設計師的編寫習慣進行規範 用法 1、.h檔案直接#include到需要的.c

mouseovermouseenter的區別

一、當繫結著兩個事件的元素裡面沒有子元素的時候,這兩個事件的觸發效果是一致的: x=0; y=0; $(document).ready(function(){ $("div.over").mouseover(function(){ $(".over").text(x+=1); });

VPS獨立服務器有什麽區別

驅動精靈 數據 基本 運行 mysq 測試軟件 大致 服務 進程 現在有不少空間商以次充好,而有不少客戶對服務器和vps分辨不清,導致不少客戶利益蒙受損失,本文這裏大致說一下怎麽區分獨立服務器和vps?  首先先大致說下vps和服務器分別的特點:    1、VPS:共享內存

typedef#define的用法與區別

++ 說明 運算符 lan body 精度 標識 gpo 幫助 typedef和#define的用法與區別 一、typedef的用法   在C/C++語言中,typedef常用來定義一個標識符及關鍵字的別名,它是語言編譯過程的一部分,但它並不實際分配內存空間,實例像:

SOA微服務的區別

目錄   1、什麼是SOA   2. 什麼是微服務 3. 微服務由來 4. 為什麼需要微服務? 4.1 最期的單體架構帶來的問題 4.2 微服務與單體架構區別 4.3 微服務與SOA區別 5. 微服務本質 6.什麼樣的專案適合微服務 微服務優勢與

H.264編碼原理以及I幀B幀P幀

獨立 像素 疊加 提高 oss 解壓 防止 相同 大小 轉自:http://www.cnblogs.com/herenzhiming/articles/5106178.html 前言 ----------------------- H264是新一代的編碼標準,

ROCAUC介紹以及如何計算AUC

image 第一個 true 編寫代碼 提前 好的 詳細說明 receiver 展示 轉自:http://alexkong.net/2013/06/introduction-to-auc-and-roc/ ROC(Receiver Operating Character

權威的故事

早期 匯編語言 算法 結構 圖書 ges 相關 針對 收回 每個人小時候心裏都是沒有權威的,就像每個人小時候也都不相信廣告一樣。可是權威就像廣告,它埋伏在你的潛意識裏。聽一遍不信,聽兩遍不信,……,直到一千遍的時候,它忽然開始起作用了,而且這作用越來越強。 消滅廣告所造成的

經驗洞察力

的人 rac class 我不 過度 做的 畫面 利用 們的 過去的事情,就讓它已成雲煙吧…… 很多人很在乎“經驗”,比如號稱自己在某領域有 30 年的經驗,會用這樣那樣的技術。我覺得經驗是有價值的,我也有經驗,各個領域的都有點。然而我並不把經驗放在很重要的位置,因為我擁有

轉載CentOSUbuntu的區別

源代碼 自由 賬戶 pri 格式 編譯 一個 arc nom CentOS(Community ENTerprise Operating System)是Linux發行版之一,它是來自於Red Hat Enterprise Linux依照開放源代碼規

rpmyum 使用

lac .html some 作者 rep pat test 數據庫 使用 換用了rh系的centos7,所以整理記錄一下rpm和yum的使用。 【rpm的使用】 rpm命令: rpm: 數據庫:/var/lib/rpm rpmbuild:

springspringMVC的面試問題總結

cat In model 被垃圾回收 自動裝配 完整 包裝 架構 repos 1.Spring中AOP的應用場景、Aop原理、好處? 答:AOP--Aspect Oriented Programming面向切面編程;用來封裝橫切關註點,具體可以在下面的場景中使用: Aut

Session Cookie Token的區別

策略 沒有 安全 字符 瓶頸 匯編 下一個 emca 十六進制 Cookie cookie 是一個非常具體的東西,指的就是瀏覽器裏面能永久存儲的一種數據,僅僅是瀏覽器實現的一種數據存儲功能。 cookie由服務器生成,發送給瀏覽器,瀏覽器把cookie以kv形式保存到某個目

JSsubstringsubstr的區別

語法: stringObject.substr(start,length) stringObject.substring(start,stop)       var mystr = 'abcdefg';        co

laravelupdateOrCreate updateOrInsert 的區別

updateOrCreate() 和 updateOrInsert() 兩個方法都是用來儲存資料的時候方便操作“ 存在即更新,反之則建立 ”的 updateOrCreate 方法使用的是 Eloquent ORM 操作的資料庫(支援自動新增建立和更新時間),updateO

C++structclass的區別

最近在看一些關於C++的書,然後這個問題不懂就來百度了= =這個文章寫的很好所以來分享~ C++中的struct對C中的struct進行了擴充,它已經不再只是一個包含不同資料型別的資料結構了,它已經獲取了太多的功能。 struct能包含成員函式嗎? 能! struc

C++newmalloc的區別

     之前的部落格中也有寫過new和malloc但是沒有系統的整理過。因為最近看面經經常會碰到面試官會問new和mmalloc的區別,所以在這裡整理一下,希望對大家有幫助。 new和malloc的區別可以從以下幾方面進行闡述: 最大的區別:new在申請空間的時候會

c++size_t size_type的區別

為了使自己的程式有很好的移植性,c++程式設計師應該儘量使用size_t和size_type而不是int, unsigned 1. size_t是全域性定義的型別;size_type是STL類中定義的型別屬性,用以儲存任意string和vector類物件的長度 2. st

XMLSchema名稱空間詳解---例項篇

上文把XML和Schema的名稱空間的一些相關內容進行了詳細介紹,下面通過例子來具體瞭解:     例一:重點理解名稱空間的相關概念。    下面的例子是一個XML Schema檔案,名為"note.xsd" <?xml version="1.0"?>&

XMLSchema名稱空間詳解

XML和Schema具有無關平臺,技術廠商,簡單,規範統一等特點,極具開放性,所以使用極為廣泛,而且使用簡單,在XML和Schema和,個人認為比較不好理解的一點是其名稱空間問題,在這篇部落格裡詳細進行理解。     名稱空間是W3C推薦標準提供的一種統一命名XML文件中的元素