c+中的可见变量+;以及如何使变量更可见 我仍然是C++初学者,但我知道一些东西。我正在学习第一学期,我想做我自己的项目,在我看来这是学习编程的最好方式。无论如何我想将数据从文件加载到动态数组(我知道怎么做),但我希望该工作由特殊函数完成,并且该数组对其他函数可见(可选全局)。我知道使用全局变量不是一个好主意,所以我在想是否有可能在没有类的情况下交到变量朋友(bc我还没有使用和学习类) 提前谢谢
c+中的可见变量+;以及如何使变量更可见 我仍然是C++初学者,但我知道一些东西。我正在学习第一学期,我想做我自己的项目,在我看来这是学习编程的最好方式。无论如何我想将数据从文件加载到动态数组(我知道怎么做),但我希望该工作由特殊函数完成,并且该数组对其他函数可见(可选全局)。我知道使用全局变量不是一个好主意,所以我在想是否有可能在没有类的情况下交到变量朋友(bc我还没有使用和学习类) 提前谢谢,c++,variables,C++,Variables,朋友不是你想要的。变量只是一个命名对象。这里要做的不是从外部访问函数的变量(这实际上是不可能的,函数变量只在函数执行时存在)。您希望将对象从一个函数传递到另一个函数。这是通过函数的返回值完成的: std::vector readDataFromFile(){ std::矢量数据; //读取文件并将其存储到数据中` 返回数据; } int main(){ std::vector myData=readDataFromFile(); //根据需要使用“myData” } 您可以在上面看到,read
朋友
不是你想要的。变量只是一个命名对象。这里要做的不是从外部访问函数的变量(这实际上是不可能的,函数变量只在函数执行时存在)。您希望将对象从一个函数传递到另一个函数。这是通过函数的返回值完成的:
std::vector readDataFromFile(){
std::矢量数据;
//读取文件并将其存储到数据中`
返回数据;
}
int main(){
std::vector myData=readDataFromFile();
//根据需要使用“myData”
}
您可以在上面看到,readDataFromFile
处理其data
变量,然后返回它。这意味着,在readDataFromFile
结束时,main中的myData
(另一个独立对象)将从data
初始化,并且数据本身将继续存在
注:
- 不要使用C型数组、
或new
。这些是为了与C和低级内存管理兼容,而不是一般用途。一个C++动态数组是一个<代码> STD::vector < /C>delete
- 这里
被移动初始化,这意味着不复制数据:动态数组直接从myData
传输到data
myData
- 这是一种可能发生NRVO的情况。这是一个优化,它注意到
是冗余的,并将用直接访问数据
来代替它,因此在整个程序执行过程中只有一个向量对象。这在一般情况下是看不到的,你不必担心myData
std::vector
right?dynamic array,我指的是指针int*name=new int[n]代码>@一些程序员伙计,我是初学者,所以也许你是对的。我想创建一个动态数组并保存它们的数据。如何归还它,如果这一乐趣能使戴恩。阵列?非常感谢!它完全解决了我的问题:)
std::vector<int> readDataFromFile() {
std::vector<int> data;
// Read the file and store it into `data`
return data;
}
int main() {
std::vector<int> myData = readDataFromFile();
// Use `myData` as needed
}