using ::bb::cascades::Application;
#include <bb/cascades/Application>
這兩個聲明是什麼意思?包括和使用聲明
是否有任何好的教程深入地陳述使用指令/聲明?謝謝。
using ::bb::cascades::Application;
#include <bb/cascades/Application>
這兩個聲明是什麼意思?包括和使用聲明
是否有任何好的教程深入地陳述使用指令/聲明?謝謝。
#include
是前置指令。它基本上告訴前置器採用給定的文件並用文件內容替換#include
行。
using
另一方面可以使用前綴namespace
前namespace
(結構,枚舉,函數)中的名稱。在這種情況下::bb::cascades::Application
將使您能夠使用寫
Application app;
代替
::bb::cascades::Application app;
如果::bb::cascades::Application
是默認constructible類。
#include
?」爲了使用一個函數或創建一個對象,編譯器必須知道這些東西的結構,例如函數簽名或類的成員和方法。這些東西寫在頭文件中。讓我們來看看一個非常簡單的例子,在這裏我們提供一些模塊(稱爲module
):
module
// MODULE_HPP
// only declarations, no code
namespace module{
struct dummyStruct{
void dummyMethod(char);
char dummyMember;
};
double dummyFunc(double);
};
// MODULE_CPP
// actual implementation
namespace module{
void dummyStruct::dummyMethod(char c){
dummyMember = c;
};
void dummyFunc(double a){
return a + 1;
}
};
正如你可以看到我們的module
由一個結構與一個成員和一個方法,以及一個簡單的功能。請注意,我們將所有內容都包裝在名稱空間module
中。現在我們有別的程序要使用module
:
#include <iostream>
using module::dummyFunc;
int main(){
std::cout << dummyFunc(1) << std::endl;
}
,這將無法工作,因爲編譯器不知道這兩個命名空間module
。您需要添加的聲明,這可以通過使用#include
進行(見這個答案的第一款):
#include <iostream>
#include "module.hpp"
using module::dummyFunc;
int main(){
std::cout << dummyFunc(1) << std::endl;
}
注意,您需要編譯兩個module.cpp和main.cpp中,否則你會出現鏈接錯誤。
你應該抓住並閱讀[好書](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)。 – Angew