我玩弄多個文件在C++中,我已經用下面的例子來的頭與不編譯:恰當使用C++
的main.cpp
#include <iostream>
#include "const.hpp"
using namespace std;
int main()
{
extern double var;
var = 5;
cout << var << endl;
return 0;
}
fct.cpp
#include <iostream>
#include "const.hpp"
using namespace std;
void func()
{
extern double var;
cout << var << endl;
}
const.hpp
#ifndef CONST_H
#define CONST_H
double var;
#endif
我的程序不能編譯,因爲顯然有var的多重定義。我正確地假設,基於這個例子,頭文件是而不是打算用於聲明變量,如我在上面的例子中?
相反,正確的步驟是聲明中的所有變量.cpp文件,並使用頭來告訴.cpp文件中包含外部(的extern)變量中的每個(相關的)翻譯單元?
編輯:是否正確,上面的規則是一個exeption處理常量變量(常量),應該在頭中定義?
它編譯,它不鏈接... – 2013-02-26 14:41:36