我有以下代码:
#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”。
答案 0 :(得分:2)
最简单&amp;优雅的方法是使用std::vector
并通过引用函数prompt()
将其作为参数传递。
一旦你使用了矢量,你就不必担心你现在面对的内存分配困境,矢量会自动增大以容纳你的物体。
因为,这是作业,我不打算给你一个代码示例 阅读std::vector并在C ++中通过引用传递参数,你应该能够解决你的功课。
答案 1 :(得分:0)
由于你不能使用vector,你只需要将数组的大小保存在main函数之外的全局变量中。只需将“int size = 0”行移动到主函数上方,您就可以从其他地方访问它。
请注意:这是可怕作为一种设计实践,但它将解决您的直接问题并让您继续学习。如果您对老师有任何好处,他们会解释有更好的方法来实现这一点(即使用STL,或实现您自己的动态数组类并通过引用传递 )。