我正在存儲指向數組中vec_A的元素的指針。假設vec_A不會調整大小。所以,a_ptrs[i]
將指向正確的元素。刪除存儲指向某些對象的指針的數組
我的問題是:
假設A * a_ptrs [3]在class B
聲明。由於它不是使用'new'創建的,我猜測我不需要在析構函數中刪除它。我對嗎??
class A {
public:
int getNumber();
A(int val);
~A(){};
private:
int num;
};
A::A(int val){
num = val;
};
int A::getNumber(){
return num;
};
int main(){
int i =0;
int num;
std::vector<A> vec_A;
for (i = 0; i < 10; i++){
vec_A.push_back(A(i));
}
A* a_ptrs[3];
a_ptrs[0] = &vec_A[0];
a_ptrs[1] = &vec_A[3];
a_ptrs[2] = &vec_A[5];
for (i = 0; i<3; i++){
std::cout<<"\n: a_ptrs[i].getNumber() = "<<a_ptrs[i]->getNumber();
}
std::cout << "\nPress RETURN to continue...";
std::cin.get();
return 0;
}
當你需要刪除一個數組時,一定要做'delete [] foo;',而不是'delete foo;'(數組刪除與標量刪除)。正如指出的那樣,不,你不需要這裏。 – 2010-05-15 08:35:52