小编sca*_*bly的帖子

静态指针和操作符新

class X {
public:
    X(int i) : num(i){}
    int num;
};

void f(int i){

    static X* px1 = new X(i);
    X* px2 = new X(i);
    cout<<px1->num;
    cout<<px2->num<<' ';

};

void main(){
    for (int i=0;i<5;i++) 
        f(i);
}
Run Code Online (Sandbox Code Playgroud)

这段代码会输出00 01 02 03 04,但我不太明白为什么静态指针px1不能使用它来改变它的值operator new.

此外,此代码有内存泄漏问题.我可以deletepx1吗?是否会delete在两个指针上使用解决内存泄漏问题?

c++

2
推荐指数
1
解决办法
3482
查看次数

析构函数和映射

class X;

class Y {
    public:
        ~Y();
    private:
        map<int,X*> m;
        vector<X*> v;
        X* px;
};
Run Code Online (Sandbox Code Playgroud)

我想析构函数class Y应该看起来像这样?

Y::~Y() {
    delete px; 
    for (vector<X*>::iterator it = v.begin(); it!=v.end(); it++) 
    delete *it;
    v.clear();
}
Run Code Online (Sandbox Code Playgroud)

但那怎么样Y::m

c++ destructor

2
推荐指数
2
解决办法
8947
查看次数

Std :: vector和Constructor

我有一些像这样的代码:

class A{

public: 
A();

private:
vector<vector<int> > mat;
int a;

}
Run Code Online (Sandbox Code Playgroud)

默认构造函数应该如何?像这样?

A::A(): mat(10(10)),a(0){};
Run Code Online (Sandbox Code Playgroud)

但是对我来说还有一个问题..我不知道"行"的数量.(vector<vector<int> >应该有n个元素,并且vector<int>应该有4个元素)而且我也有访问元素的问题vector<vector<int> >.所以你能告诉我怎么做吗?谢谢.:)

c++ project

0
推荐指数
1
解决办法
94
查看次数

标签 统计

c++ ×3

destructor ×1

project ×1