多くの機能を持つ C++ のプロジェクトに取り組んでいます。私はそれらをメインプログラムに書きたくないので、関数ごとに個別の .cpp ファイルを書きたいと思っています。これらの関数のほとんどはいくつかの配列に作用するため、これらの配列をグローバルにしたいと考えています。そこで、globals.cpp という別の .cpp ファイルですべての配列を宣言し、extern という接頭辞が付いた globals.h ファイルに配置しました。いつものように関数とメインプログラムを書きましたが、コンパイルすると
ここに私が持っているものがあります:
//globals.cpp
#include <iostream>
#include <blitz/blitz.h>
#include <blitz/array.h>
#include "prototype.h"
#include "globals.h"
BZ_USING_NAMESPACE(blitz)
Array<double,2> A(5,5);
私が持っているglobals.hファイルで
#ifndef GLOBALS_H
#define GLOBALS_H
extern Array<double,2> A(5,5);
#endif
次に、関数add.cppがあります。たとえば、
#include <iostream>
#include <blitz/blitz.h>
#include <blitz/array.h>
#include "prototype.h"
#include "globals.h"
BZ_USING_NAMESPACE(blitz)
void add.cpp(){
for(int i=0;i<5;i++){
A(i,i)=i*i;
}
}
私は明らかにそれをprototype.hファイルに含めます
#ifndef GLOBALS_H
#define GLOBALS_H
void add();
#endif
最後に、メイン プログラム mainprog.c があります。
#include <iostream>
#include <blitz/blitz.h>
#include <blitz/array.h>
#include "prototype.h"
#include "globals.h"
BZ_USING_NAMESPACE(blitz)
int main(){
add();
cout<<A<<endl;
return 0;
}
ただし、コンパイルすると、「globals.h:6:8: error: 'Array' does not name a type」というエラーが表示されます
次に、エラー A が宣言されていないことを示す add.cpp 関数のエラー。
ブリッツ配列をグローバルとして宣言するにはどうすればよいですか? ありがとうございます`