我想重新創建我自己的理解向量類。在嘗試編譯此代碼時,我最近在Visual Studio 2013中遇到了一個問題。我正在一個錯誤每個「向量」關鍵字,指出:C++ Visual Studio「噁心的宏Hack」編譯問題
我不知道如果這是我的類定義內的誤差範圍,如果這是別的東西。 我還沒有玩過任何設置。
#include "../../../std_lib_facilities.h"
class vector{
int sz;
double* elem; //pointer to the first element (of type double)
public:
vector(int s) :sz(s), //constructor - allocates s doubles , :size(s) is a 'initilization list'
elem(new double[s])
{
for (int i = 0; i < s; i++)
elem[i] = 0; //initialize elements
}
int size() const
{
return sz;
}
//read
double get(int n)
{
return elem[n];
}
//write
void set(int n, double v)
{
elem[n] = v;
}
//Every class that owns a resource needs a destructor
~vector() //destructor
{
delete[] elem; // free memory
}
};
int main(int argc)
{
vector v(5);
for (int i = 0; i < v.size(); i++){
v.set(i, i);
cout << "v[" << i << "]==" << v.get(i) << '\n';
}
system("PAUSE");
}
如果您需要了解更多信息,請不要猶豫,問。
添加#undef向量可以提供幫助嗎? – LeeNeverGup
頭文件中有什麼? – Serdalis
我建議你調用別的東西(比如'myvector'),或者不要在定義宏的地方包含頭部。如果您無法避開該標題並且不想重命名您的類,請按照建議嘗試'#undef'。微軟不應該將宏用於受命名空間保護的東西。這是真的很低。 – paddy