对象传染媒介 - 编辑元素和优化

时间:2015-04-10 20:19:01

标签: c++ optimization vector

我是cpp的新手,所以我想问几个问题。 如此渴望我的代码:

main.cpp中:

int main()
{
    App app;
    app.Start();
    return 0;
}

App.cpp

void App::Start()
{
    Doc doc;
    Element TempElement;
    for (;;)
    {
        // loop which runs menu and so on
        // Adding new element to vector:

        cout << "Input data" << endl;
        cin >> temp_string;
        TempElement.Set_some_data(temp_string);
        doc.Add_item(&TempElement);
    }
}

Doc.cpp

vector <Element> MyElements;   //before any methods

void Doc::Add_item(Element *TempElement)
{
    MyElements.push_back(*TempElement); 
}

Element.cpp是我想要存储在vector中的对象的基本类(在Doc类中)

它有效,但我有几个问题:

  1. 这种方法好吗?我应该在任何方法之前加上“vector MyElements”吗?
  2. 有没有办法在doc对象中创建临时元素并在App中使用它?
  3. 我试图为我的矢量制作编辑功能,但是我很失败。只是编辑对象中的一些数据。你有什么提示吗?

1 个答案:

答案 0 :(得分:0)

我会改变

void Doc::Add_item(Element *TempElement)
{
    MyElements.push_back(*TempElement); 
}

void Doc::Add_item(Element const& tempElement)
                   //     ^^^^^^^ Use const& instead of pointer.
{
    MyElements.push_back(tempElement); 
}

并相应地将呼叫更改为:

doc.Add_item(TempElement);