c++ - 析构函数和构造函数

标签 c++

有人可以向我解释为什么我会收到“错误:未在此范围内声明吗?”

num 和 denom 是类 Rationalnumber 的私有(private)成员。

谢谢!

Rationalnumber::Rationalnumber(){
num = 0;
denom = 1;
int * n = new int;
int * d = new int;
*n = num;
*d = denom;
}

Rationalnumber::~Rationalnumber(){
delete n;
}

最佳答案

n 是类构造函数中的局部变量。当构造函数完成时它超出范围时,它不再对应用程序的任何其他部分可见;该内存已泄漏。

在调用析构函数时没有名为 n 的局部变量或成员变量,因此:未在此范围内声明。

关于c++ - 析构函数和构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13384911/

相关文章:

python - 如何用 OpenMP 编译 OpenCV

c++ - 为什么表达式 *(b++) 不首先计算 b++?

c++ - 在单个阵列上的 opencl 中处理工作组及其大小

c++ - 关键字 "virtual"是否传递给中间基类?

c++ - 将 std::string 转换为 ci_string

c++ - 为什么 cin 提取运算符会导致段错误?

c++ - 关于编译和链接 C++ 文件时的 -ldl 标志

c++ - qsort 在排序 2D 点时没有给出正确的结果

c++ - 简单的 Qt 嵌入式窗口问题

c++ - 我如何在单独的头文件中的结构中定义一个 char* 数组?