Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.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
在实现cpp C++; 看起来很奇怪……不确定微软C++在代码的~读数据部分放红线是什么原因。当我尝试取消分配int数组和double数组时,有什么特别的事情要做吗??提前谢谢 #include "ReadData.h" ReadData::ReadData(string file) { } tuple <int *, int *, double *> ReadData::CreatePtr (string file) { ifstream inFile; inFile.open(file); inFile >> IRP_Length >> CIndx_Length >>A_Length; int *IRP=new int[IRP_Length]; int *CIndx=new int[CIndx_Length]; double *A=new double[A_Length]; for (int a = 0; a < IRP_Length; a++) inFile >> IRP[a] ; for (int b = 0; b < CIndx_Length; b++) inFile >> CIndx[b] ; for (int c = 0; c < A_Length; c++) inFile >> A[c] ; inFile.close(); return make_tuple(IRP,CIndx,A) ; } ReadData::~ReadData() { delete[] IRP;//red line under IRP delete[] CIndx;//red line under CIndx delete[] A;//red line under A } #包括“ReadData.h” ReadData::ReadData(字符串文件) { } 元组读取数据::CreatePtr(字符串文件) { 河流充填; inFile.open(文件); 填充>>IRP\U长度>>CIndx\U长度>>A\U长度; int*IRP=新的int[IRP_长度]; int*CIndx=新的int[CIndx_长度]; double*A=新的double[A_长度]; 对于(int a=0;a>IRP[a]; 对于(int b=0;b>CIndx[b]; 对于(int c=0;c>A[c]; infle.close(); 返回生成组(IRP、CIndx、A); } ReadData::~ReadData() { 删除[]IRP;//IRP下的红线 删除[]CIndx;//CIndx下的红线 删除[]A;//A下的红线 }_C++_Memory Management - Fatal编程技术网 >IRP\U长度>>CIndx\U长度>>A\U长度; int*IRP=新的int[IRP_长度]; int*CIndx=新的int[CIndx_长度]; double*A=新的double[A_长度]; 对于(int a=0;a>IRP[a]; 对于(int b=0;b>CIndx[b]; 对于(int c=0;c>A[c]; infle.close(); 返回生成组(IRP、CIndx、A); } ReadData::~ReadData() { 删除[]IRP;//IRP下的红线 删除[]CIndx;//CIndx下的红线 删除[]A;//A下的红线 },c++,memory-management,C++,Memory Management" /> >IRP\U长度>>CIndx\U长度>>A\U长度; int*IRP=新的int[IRP_长度]; int*CIndx=新的int[CIndx_长度]; double*A=新的double[A_长度]; 对于(int a=0;a>IRP[a]; 对于(int b=0;b>CIndx[b]; 对于(int c=0;c>A[c]; infle.close(); 返回生成组(IRP、CIndx、A); } ReadData::~ReadData() { 删除[]IRP;//IRP下的红线 删除[]CIndx;//CIndx下的红线 删除[]A;//A下的红线 },c++,memory-management,C++,Memory Management" />

在实现cpp C++; 看起来很奇怪……不确定微软C++在代码的~读数据部分放红线是什么原因。当我尝试取消分配int数组和double数组时,有什么特别的事情要做吗??提前谢谢 #include "ReadData.h" ReadData::ReadData(string file) { } tuple <int *, int *, double *> ReadData::CreatePtr (string file) { ifstream inFile; inFile.open(file); inFile >> IRP_Length >> CIndx_Length >>A_Length; int *IRP=new int[IRP_Length]; int *CIndx=new int[CIndx_Length]; double *A=new double[A_Length]; for (int a = 0; a < IRP_Length; a++) inFile >> IRP[a] ; for (int b = 0; b < CIndx_Length; b++) inFile >> CIndx[b] ; for (int c = 0; c < A_Length; c++) inFile >> A[c] ; inFile.close(); return make_tuple(IRP,CIndx,A) ; } ReadData::~ReadData() { delete[] IRP;//red line under IRP delete[] CIndx;//red line under CIndx delete[] A;//red line under A } #包括“ReadData.h” ReadData::ReadData(字符串文件) { } 元组读取数据::CreatePtr(字符串文件) { 河流充填; inFile.open(文件); 填充>>IRP\U长度>>CIndx\U长度>>A\U长度; int*IRP=新的int[IRP_长度]; int*CIndx=新的int[CIndx_长度]; double*A=新的double[A_长度]; 对于(int a=0;a>IRP[a]; 对于(int b=0;b>CIndx[b]; 对于(int c=0;c>A[c]; infle.close(); 返回生成组(IRP、CIndx、A); } ReadData::~ReadData() { 删除[]IRP;//IRP下的红线 删除[]CIndx;//CIndx下的红线 删除[]A;//A下的红线 }

在实现cpp C++; 看起来很奇怪……不确定微软C++在代码的~读数据部分放红线是什么原因。当我尝试取消分配int数组和double数组时,有什么特别的事情要做吗??提前谢谢 #include "ReadData.h" ReadData::ReadData(string file) { } tuple <int *, int *, double *> ReadData::CreatePtr (string file) { ifstream inFile; inFile.open(file); inFile >> IRP_Length >> CIndx_Length >>A_Length; int *IRP=new int[IRP_Length]; int *CIndx=new int[CIndx_Length]; double *A=new double[A_Length]; for (int a = 0; a < IRP_Length; a++) inFile >> IRP[a] ; for (int b = 0; b < CIndx_Length; b++) inFile >> CIndx[b] ; for (int c = 0; c < A_Length; c++) inFile >> A[c] ; inFile.close(); return make_tuple(IRP,CIndx,A) ; } ReadData::~ReadData() { delete[] IRP;//red line under IRP delete[] CIndx;//red line under CIndx delete[] A;//red line under A } #包括“ReadData.h” ReadData::ReadData(字符串文件) { } 元组读取数据::CreatePtr(字符串文件) { 河流充填; inFile.open(文件); 填充>>IRP\U长度>>CIndx\U长度>>A\U长度; int*IRP=新的int[IRP_长度]; int*CIndx=新的int[CIndx_长度]; double*A=新的double[A_长度]; 对于(int a=0;a>IRP[a]; 对于(int b=0;b>CIndx[b]; 对于(int c=0;c>A[c]; infle.close(); 返回生成组(IRP、CIndx、A); } ReadData::~ReadData() { 删除[]IRP;//IRP下的红线 删除[]CIndx;//CIndx下的红线 删除[]A;//A下的红线 },c++,memory-management,C++,Memory Management,在这几行中,您正在创建局部变量IRP、CIndx、和A,并对它们进行初始化。在我看来,您可能有一些成员的名字是您想要分配给的: IRP=new int[IRP_Length]; CIndx=new int[CIndx_Length]; A=new double[A_Length]; Intellisense正在抱怨,因为您正试图使用这些当前未初始化的成员 在这几行中,您正在创建局部变量IRP、CIndx、和A,并对它们进行初始化。在我看来,您可能有一些成员的名字是您想要分配给的: IRP=ne

在这几行中,您正在创建局部变量
IRP
CIndx
、和
A
,并对它们进行初始化。在我看来,您可能有一些成员的名字是您想要分配给的:

IRP=new int[IRP_Length];
CIndx=new int[CIndx_Length];
A=new double[A_Length];
Intellisense正在抱怨,因为您正试图使用这些当前未初始化的成员

在这几行中,您正在创建局部变量
IRP
CIndx
、和
A
,并对它们进行初始化。在我看来,您可能有一些成员的名字是您想要分配给的:

IRP=new int[IRP_Length];
CIndx=new int[CIndx_Length];
A=new double[A_Length];

Intellisense正在抱怨,因为您正试图使用这些当前未初始化的成员。

函数CreatePtr中的这些定义

int *IRP=new int[IRP_Length];
int *CIndx=new int[CIndx_Length];
double *A=new double[A_Length];
是局部变量的定义。它们不是类的数据成员

因此,在析构函数中,编译器看到您正试图删除未初始化的数据成员

delete[] IRP;//red line under IRP
delete[] CIndx;//red line under CIndx
delete[] A;//red line under A

我想您指的不是函数CreatePtr中的局部变量,而是数据成员。

函数CreatePtr中的这些定义

int *IRP=new int[IRP_Length];
int *CIndx=new int[CIndx_Length];
double *A=new double[A_Length];
是局部变量的定义。它们不是类的数据成员

因此,在析构函数中,编译器看到您正试图删除未初始化的数据成员

delete[] IRP;//red line under IRP
delete[] CIndx;//red line under CIndx
delete[] A;//red line under A

我想你指的不是函数CreatePtr中的局部变量,而是数据成员。

Intellisense它并不总是正确的。IRP、CIndx和A的类型是什么?请将头文件发布到tuple中?方法是模板还是元组?也许您应该编写
模板元组ReadData::CreatePtr(字符串文件)
。。。Intellisense并不总是正确的。IRP、CIndx和A的类型是什么?请将您的头文件发布到What is
tuple
?方法是模板还是元组?也许您应该编写
模板元组ReadData::CreatePtr(字符串文件)
。。。我打赌他们根本没有被宣布为成员,Intellisense正在抱怨未声明的标识符。@Fredrarson你可能是对的。红色下划线是错误吗?我想是的,但我不是VisualStudio用户。我打赌他们根本没有声明为成员,Intellisense正在抱怨未声明的标识符。@Fredrarson你可能是对的。红色下划线是错误吗?我想是的,但我不是VisualStudio用户。