C++ 整数的动态分配

C++ 整数的动态分配,c++,dynamic,C++,Dynamic,我正在做一个小练习,我在试图找出如何在类构造函数中为int值分配空间时遇到了一些问题。我知道这是无用的,不推荐,但这是我必须这样做的方式。我知道这是一个以前被问过的问题,这应该是一个简单的任务,但我找不到我的问题的答案,所以,我很抱歉重新发布。我只保留了代码中不起作用的部分。简化版本如下所示: class AAA{ int *var; AAA(int *v){ this->var = new int; this->var = v; } }; void main(){

我正在做一个小练习,我在试图找出如何在类构造函数中为int值分配空间时遇到了一些问题。我知道这是无用的,不推荐,但这是我必须这样做的方式。我知道这是一个以前被问过的问题,这应该是一个简单的任务,但我找不到我的问题的答案,所以,我很抱歉重新发布。我只保留了代码中不起作用的部分。简化版本如下所示:

class AAA{
int *var;
AAA(int *v){
    this->var = new int;
    this->var = v;
}  };
void main(){ AAA a(15); }
感谢您的多次光临,很抱歉再次发帖


谢谢大家的回答!我没有忘记析构函数,只是在这里保持代码简单;再次感谢。真的很有帮助

你想要的应该是

class AAA{
    int *var;
    AAA(int v){
        this->var = new int;
        *this->var = v;
    }
};
int main(){ AAA a(15); return 0; }

不要忘记析构函数。

您应该将
int
按值传递给构造函数,然后您可以使用参数
v
分配一个新的
int
,或者先分配空间,然后取消引用并分配值

AAA(int v){
    var = new int(v);
}
请注意,现在需要定义析构函数,这样就不会泄漏内存

~AAA()
{
    delete var;
}

除了一些其他的缺陷,你应该像这样修复你的代码

class AAA{
    int *var;
    AAA(int v) { // << no pointer here
         var = new int(v);
    }  
};

int main() { 
    AAA a(15); 
}

别忘了复制类会发生什么。为什么不模仿OP的意图呢?还有别忘了剩下的5个规则。
~AAA () {
    delete var;
}