【发布时间】:2016-04-26 14:27:49
【问题描述】:
我想知道为什么我编写的以下代码的第二部分不起作用。我正在练习指向类对象的指针向量。我尝试了两种方法,一种是定义一个类对象;另一种是定义一个指向对象的指针。第二种方式失败了。
#include <iostream>
#include <vector>
using namespace std;
class A{
public:
int id;
A(int id):id(id){}
};
int main()
{
vector<A*> A_vec, A_vec2;
A a(5);
A_vec.push_back(&a);
cout << A_vec.size() << "; id " << A_vec[0]->id << endl;
A *a1;
a1->id = 5;
A_vec2.push_back(a1);
cout << A_vec2.size() << "; id " << A_vec2[0]->id << endl;
}
【问题讨论】:
-
这是你的答案stackoverflow.com/questions/817263/…你需要使用
new -
在向量中正确使用指针是拥有一个智能指针向量,即处理目标内存释放的那种。
标签: c++