Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c+中的可见变量+;以及如何使变量更可见 我仍然是C++初学者,但我知道一些东西。我正在学习第一学期,我想做我自己的项目,在我看来这是学习编程的最好方式。无论如何我想将数据从文件加载到动态数组(我知道怎么做),但我希望该工作由特殊函数完成,并且该数组对其他函数可见(可选全局)。我知道使用全局变量不是一个好主意,所以我在想是否有可能在没有类的情况下交到变量朋友(bc我还没有使用和学习类) 提前谢谢_C++_Variables - Fatal编程技术网

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
    delete
    。这些是为了与C和低级内存管理兼容,而不是一般用途。一个C++动态数组是一个<代码> STD::vector < /C>
其他概念:

  • 这里
    myData
    被移动初始化,这意味着不复制数据:动态数组直接从
    data
    传输到
    myData

  • 这是一种可能发生NRVO的情况。这是一个优化,它注意到
    数据
    是冗余的,并将用直接访问
    myData
    来代替它,因此在整个程序执行过程中只有一个向量对象。这在一般情况下是看不到的,你不必担心


您的问题不太清楚,但听起来似乎应该将变量作为参数传递给函数。不需要朋友或全局变量可以将数组作为参数传递吗?或者从函数“dynamic array”返回数组-您是指
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
}