首先是这个问题:
e75d5bcf7167.htmlhttp://topic.csdn.net/u/20121022/11/af7bc053-b07a-41ee-8282-e75d5bcf7167.html
,没有获得答案~如果有知道的朋友还请指教;
其次是一个类中重写new的问题:
一个类包含一个double数组,这个数组是靠一个double*成员来引用的,如果自己重写new,怎么获得重写后new表达式返回的指针呢?如果说不需要获得指针,那么如何为这个double*赋值初始化呢~多谢各位帮助~
e75d5bcf7167.htmlhttp://topic.csdn.net/u/20121022/11/af7bc053-b07a-41ee-8282-e75d5bcf7167.html
,没有获得答案~如果有知道的朋友还请指教;
其次是一个类中重写new的问题:
一个类包含一个double数组,这个数组是靠一个double*成员来引用的,如果自己重写new,怎么获得重写后new表达式返回的指针呢?如果说不需要获得指针,那么如何为这个double*赋值初始化呢~多谢各位帮助~
你自己重写构造函数不就可以了?就能满足你所有的变化了。难道你需要的是:double * p = wokao double;p就初始化好了?
class CSB
{
public:
CSB(int nLength){
m=new double[nLength];
}
private:
double * m;
}
这个类的对象,频繁的产生和销毁!为效率!!!!!!!!!!!!重写类中operator new!也就是new CSB();之后的CSB构造函数怎么知道new操作符返回的指针!new只能申请一块内存,至于该内存返回的指针,如何交给构造函数!!!!
对重写new有异议的绕行!
对不知道重写new的绕行!
对不知道有几种new的绕行!
class CSB
{
public:
static double * m; CSB(int nLength){
if (!m)
m=new double[nLength];
}
}这符合只申请一块内存的要求吧?
做数据采集中,每次采集出来的数组有长有短,并带有附加信息,用一个类去包装这个数组,那么这个类的对象内附加信息的空间需求是已知的,但是数组大小是不确定的,如果用自定义的new operator,虽然能将类似CSB的所有对象分配到内存池中,也可以根据所需空间申请每个单独对象的大小,但是,每个对象内的m所引用的位置无法得知,因此无法在构造函数内使用memcpy。这就是全部的问题,提炼出来就是:如何在一个类的构造函数中获得该对象已分配内存的首地址,虽然this是首地址,但是由于虚表是否存在?不安全:安全。
做数据采集中,每次采集出来的数组有长有短,并带有附加信息,用一个类去包装这个数组,那么这个类的对象内附加信息的空间需求是已知的,但是数组大小是不确定的,如果用自定义的new operator,虽然能将类似CSB的所有对象分配到内存池中,也可以根据所需空间申请每个单独对象的大小,但是,每个对象内的m所引用的位置无法得知,因此无法在构造函数内使用memcpy。这就是全部的问题,提炼出来就是:如何在一个类的构造函数中获得该对象已分配内存的首地址,虽然this是首地址,但是由于虚表是否存在?不安全:安全。