我知道這應該很容易,但我似乎無法把握它。我想要做的就是能夠在我的main.cpp文件中使用getUTC()函數。這顯然是錯誤的,但我在那裏展示了我正在嘗試做的事情。善良 - C++的新手。C++ - 正確的方法來添加功能,以單獨的文件
我的理解是建立一個項目的「正確」方法是在自己的文件中有獨立的「部分」代碼,就像我習慣的任何其他語言一樣,因爲您可以更輕鬆地查看/編輯路。因此,在這種情況下,mylib將成爲我在整個項目中使用的常用功能。在另一個頭文件/文件可能是我所有的文件處理,等等。
的main.cpp
#include <Windows.h>
#include "mylib.h"
using namespace mylib;
mylib::getUTC();
mylib.h
#ifndef MYLIB_H
#define MYLIB_H
namespace mylib
{
void getUTC();
}
#endif
mylib.cpp
#include "mylib.h"
#include <ctime>
namespace mylib
{
void getUTC() {
time_t utcTime;
return time(&utcTime);
}
}
UPDATE編輯:
mylib.h
#ifndef MYLIB_H
#define MYLIB_H
namespace mylib
{
time_t getUTC();
}
#endif
mylib.cpp
#include "mylib.h"
#include <ctime>
namespace mylib
{
time_t getUTC() {
time_t utcTime;
return time(&utcTime);
}
}
然後在main.cpp中我可以這樣稱呼它mylib::getUTC()
。這編譯和工作。你們其中一位提到擺脫namespace mylib
,但因爲我會在這個文件中有不少功能,更不用說可能會在我的main.cpp中使用更多的頭文件/ cpp文件。我認爲這是一種很好的方式區分我的代碼/部分,除非有某些原因不應該這樣做?
此外,現在對我來說很明顯這是如何完成的...不知道爲什麼我會感到困惑。我在不同語言中擁有非常堅實的背景,而不是C++,所以當我開始使用代碼時,我主要關心的一個問題是確保我正在以「正確/正確」的方式進行操作,所以它不會讓我失望諸如使用多個頭文件/源文件的道路。
更多的更新:
我想也許它沒有工作,畢竟。編譯時得到這些錯誤:
Error C2086 'int mylib::time_t': redefinition mylib.cpp
Error C2447 '{': missing function header (old-style formal list?) mylib.cpp
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int mylib.cpp
Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int mylib.h
Error C2143 syntax error: missing ';' before '{' mylib.cpp
Error C2146 syntax error: missing ';' before identifier 'getUTC' mylib.cpp
Error C2146 syntax error: missing ';' before identifier 'getUTC' mylib.h
爲什麼ü認爲這是錯的?你得到的錯誤是什麼? – Nandu