簡體   English   中英

如何在主cpp中使用的標頭中存儲變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM