由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 包含指针的类和vector的问题
相关主题
菜鸟请教smart pointerC++的一个小疑问,求解惑
急问:compile and build dependencyC++ 里push_back 一问
问个题。C#复制栈是反序的?
c++ initialize structcopy constructor问题。
*(&b1)=b编译不过,b1=b可以,区别是?C++ vector
vector在constructor里初始化c++ question
请教个Bloomberg 的 C++ 题目一个c++ constructor的问题, thanks
问一个 copy constructor 的问题 (C++)【C++】请问这样有没有memory leak?多谢
相关话题的讨论汇总
话题: vector话题: buf话题: obj话题: copy话题: vec
进入Programming版参与讨论
1 (共1页)
G********7
发帖数: 256
1
我有一个类,里面包含一个指针,大致如下
class A
{
int a;
int* buf;
A(){a=0;buf=0}; // default constructor
A(const A& in){ // copy constructor
a=in.a;
buf=new int[a];
memcpy(buf,in.buf,sizeof(int)*a);
};

~A(){ if(buf!=0) delete[] buf;}; // destructor
};
程序里面定义了一个vector vec,然后我试图向里面insert一个object,如下
vector
vec;
vec.insert(vec.begin(),obj_A); // obj_A is an object of class A
这时候就出问题了。我debug的时候发现,vector的insert函数是先给obj_A复制一个
copy,叫做obj_A_copy,然后把obj_A_copy赋值给vec[0]。当退出insert函数时,
obj_
t****t
发帖数: 6806
2
有指针的类, 99%需要定义copy constructor和op=
op=记得要检测self-assignment
vector的定义没问题的
t****t
发帖数: 6806
3
有op=就没问题

【在 G********7 的大作中提到】
: 我有一个类,里面包含一个指针,大致如下
: class A
: {
: int a;
: int* buf;
: A(){a=0;buf=0}; // default constructor
: A(const A& in){ // copy constructor
: a=in.a;
: buf=new int[a];
: memcpy(buf,in.buf,sizeof(int)*a);

G********7
发帖数: 256
4
恩,明白了,谢谢!

【在 t****t 的大作中提到】
: 有op=就没问题
k**f
发帖数: 372
5

I'm not小猪 or thrust,but I think using vector is not necessary more
professional than using vector.
Do you know why your programs use vector instead of vector
? Is A a
base class with virtual function?
T*****9
发帖数: 2484
6
push_back 的参数类型是const T&吧

more
a
b***y
发帖数: 2799
7
定义了copy ctor, 一般也要定义operator =和default ctor. 这是一般规律。

【在 G********7 的大作中提到】
: 我有一个类,里面包含一个指针,大致如下
: class A
: {
: int a;
: int* buf;
: A(){a=0;buf=0}; // default constructor
: A(const A& in){ // copy constructor
: a=in.a;
: buf=new int[a];
: memcpy(buf,in.buf,sizeof(int)*a);

1 (共1页)
进入Programming版参与讨论
相关主题
【C++】请问这样有没有memory leak?多谢*(&b1)=b编译不过,b1=b可以,区别是?
如何 initialize array member?vector在constructor里初始化
急问:这个为什么不行?请教个Bloomberg 的 C++ 题目
C里面的数组拷贝问一个 copy constructor 的问题 (C++)
菜鸟请教smart pointerC++的一个小疑问,求解惑
急问:compile and build dependencyC++ 里push_back 一问
问个题。C#复制栈是反序的?
c++ initialize structcopy constructor问题。
相关话题的讨论汇总
话题: vector话题: buf话题: obj话题: copy话题: vec