[英]how to correctly use vector of pointers to objects of class
我不知道為什么我編寫的以下代碼的第二部分不起作用。 我正在練習指向類對象的指針的向量。 我嘗試了兩種方法,一種是定義一個類對象。 另一種是定義一個指向對象的指針。 第二種方法失敗了。
#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;
}
第二個片段不起作用,因為您從未為對象分配內存,因此a1
指向無處。
A *a1 = new A(5);
...
// Once you're done with `a1', release the memory.
delete a1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.