作者cory8249 (Cory)
看板C_and_CPP
標題[問題] Header & 多檔編譯 問題
時間Sun Apr 1 16:06:43 2012
各位好:
我想請問一些關於自訂函式 & 多檔編譯的問題
麻煩大家指教了
(問題有點冗長 敬請包涵)
現在有三個檔案
MyFunc.h 、 MyFunc.cpp 以及原本的 main.cpp
-------------- MyFunc.h -----------------
#ifndef MyFunc_H_
#define MyFunc_H_
#include <cmath>
const int radio = 5;
double myMath (double, double);
#endif
-----------------------------------------
------------- MyFunc.cpp ----------------
#include "MyFunc.h"
double myMath (double a, double b)
{
return ratio*(sin(a) + cos(b)) ;
}
------------------------------------------
-------------- main.cpp ------------------
#include <iostream>
#include "MyFunc.h"
int main()
{
std::cout << myMath(3.14, 3.14);
return 0;
}
------------------------------------------
答案大概是 -4.99~ 接近 -5
1.
如果想把函式獨立成一個檔案
是不是都要分開成 原型的 header 跟 實作的 cpp
然後搭配 Header Guard ?
2.
#include <cmath> 是不是只要在 .h 檔案放一次就好 ?
主程式 & 實作.cpp 都不用再放了 ?
3.
如果想定義有一些常數 像是 const int radio = 5;
這句可以直接放在 .h 嗎 ??
因為我還有其他的檔案 compute.cpp 會用的這個 radio 跟 myMath()
所以把 radio 定義在一個 .h 裡面
然後其他 cpp 再去 #include "XXX.h"
這樣OK嗎 ??
4.
承(3.) 那些 .cpp 檔案要去 宣告 extern int radio; 嗎 ??
感覺好像要
但是我用 g++ -c MyFunc.cpp
不加直接跑也可以過
所以 ??
---
以上幾個問題
感謝各位耐心看完
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.255.238.109
→ Favonia:最重要的觀念:#include 基本上就是把程式碼複製貼上 04/01 19:48
→ diabloevagto:推樓上,基本上include只是讓你比較好管理 04/01 19:57
→ diabloevagto:最後還是全部包起來,g++可以看precompiler忘了參數 04/01 19:58
→ diabloevagto:要加上什麼了 04/01 19:58
→ james732:-E 04/01 19:58
→ james732:header file的概念很簡單,但要用得好實在有點難....XD 04/01 20:00
謝謝各位回答
※ 編輯: cory8249 來自: 111.255.7.196 (04/02 14:01)