访问另一个函数的变量

时间:2011-06-16 11:54:42

标签: c++

我有以下代码:

#include <iostream>
#include "note.h";

using namespace std;

void prompt() {
    string opt;
    system("CLS");
    cout << "What do you want to do?" << endl << "1. Browse" << endl << "2. Add" << endl;
    cin >> opt;
    if(opt=="1") {
        cout << "Not yet.";
    } else if(opt=="2") {
        system("CLS");
        string title;
        string content;
        cout << "Title:" << endl;
        cin >> title;
        cout << "Content:" << endl;
        cin >> content;
        Note note(title, content);      

    } else {
        prompt();
    }
}

int main() {    
    int size = 0;
    Note* tNote = new Note[size];

    delete [] tNote;
    prompt();
    system("PAUSE");
    return 0;
}

我的问题是 - 如何在提示符()函数中添加另一个注释来增加它们在main()中定义的大小?
目前我想做尺寸++; inside prompt()我得到“undefined identifier”

2 个答案:

答案 0 :(得分:2)

最简单&amp;优雅的方法是使用std::vector并通过引用函数prompt()将其作为参数传递。

一旦你使用了矢量,你就不必担心你现在面对的内存分配困境,矢量会自动增大以容纳你的物体。

因为,这是作业,我不打算给你一个代码示例 阅读std::vector并在C ++中通过引用传递参数,你应该能够解决你的功课。

答案 1 :(得分:0)

由于你不能使用vector,你只需要将数组的大小保存在main函数之外的全局变量中。只需将“int size = 0”行移动到主函数上方,您就可以从其他地方访问它。

请注意:这是可怕作为一种设计实践,但它将解决您的直接问题并让您继续学习。如果您对老师有任何好处,他们会解释有更好的方法来实现这一点(即使用STL,或实现您自己的动态数组类并通过引用传递 )。