![](/img/trans.png)
[英]How to get global variable declared in Main.cpp to be accessible in a header
[英]How to store a variable in a header, to use in the main cpp?
我試着問這個問題,細節上有些模糊,但是現在我回到家了,希望我能更好地解釋自己。
說,我有一個類,在這種情況下為TestClass
,我已經在TestClass.h
聲明了它的構造函數和方法。 現在,我想創建一個由這些元素組成的新數組,並將它們存儲在某個地方,以便在需要時加載到main.cpp
中。
我嘗試做的是在新的標頭中執行此操作,我將其稱為Contents Table.h
。 在這里,我嘗試制作這些TestClass
元素的數組。 但是,我真的不知道如何正確執行此操作。
測試類
#pragma once
#include <string.h>
#include <iostream>
using namespace std;
class TestClass
{
private:
string name;
string description;
public:
TestClass()
{
name = "";
description = "";
}
TestClass(string name, string description)
{
this->name = name;
this->description = description;
}
~TestClass()
{
}
};
這是目錄表,我要在其中存儲我手動寫入的數據,我對此有兩種想法,不確定哪一種可行:
第一個想法:
目錄表
#include "Testclass.h"
TestClass* buildData(void)
{
TestClass* World = new TestClass[5];
World[0] = TestClass("A", "A");
//Etc, fill the rest up.
return World;
}
在main.cpp中,我將調用此函數,例如
#include "Contents Table.h"
//...
TestClass* DataArray = buildData();
第二個主意:
目錄表
#include "Testclass.h"
namespace DataArray2
{
extern TestClass* DataArray2 = new TestClass[5];
DataArray2[0] = TestClass("A", "A");
};
我會在main.cpp中再次聲明它,但第二件事是,當我嘗試給出其元素值時,我試圖重新聲明DataArray2。 (再次,我敢肯定這是我的錯,對不起,如果它看起來像是一本平淡的代碼,我已經學習了很長時間了。)
不知道這是否滿足您的要求,但是我會讓buildData
看起來像這樣(C ++ 11解決方案):
#include <vector>
using std::vector;
/*Define TestClass*/
vector<TestClass> buildData() {
vector<TestClass> v;
v.emplace_back("A", "A");
return v;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.