|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
在線等待,指針問題,求助各位大蝦
我有一個CObj類,定義一個CObj ** pObj指針,我如何用new實現這樣的功能pObj=(CObj**)malloc(num*sizeof(pObj*));功能。謝謝! |
在線等待,指針問題,求助各位大蝦
:shock: ,不清楚你的意思
pObj = &(new CObject); |
在線等待,指針問題,求助各位大蝦
我定義的CObj **pObj,我要new出n個空間來存放CObj對像地址,怎麼用new來實現,就有點像pObj=(CObj**)malloc(n*sizeof(CObj*))一樣的功能,用
new來實現。 |
在線等待,指針問題,求助各位大蝦
-->
你定義一個對像指針數組怎麼樣? |
在線等待,指針問題,求助各位大蝦
C++ 與 C 不要混用,不然怎麼死都不知道!!!! |
在線等待,指針問題,求助各位大蝦
因為n數目不固定,所以要用指針,有什麼好方法? |
在線等待,指針問題,求助各位大蝦
| 在線等待,指針問題,求助各位大蝦
各位開動大腦,我覺得這個問題有一定價值,也幫忙把這問題解決。 |
在線等待,指針問題,求助各位大蝦
| 在線等待,指針問題,求助各位大蝦
-->
同意,vector是個好東西。 |
在線等待,指針問題,求助各位大蝦
lenovo 兄,你好,能舉一個例子嗎? |
在線等待,指針問題,求助各位大蝦
[b]pObj=(CObj**)malloc(n*sizeof(CObj*))[/b]這種寫法嚴重不推薦! 因為它只是分配了那麼大的內存,而沒有調用對象的構造函數,更重要的是它沒有對C++底層的一些變量進行正確的構造,如虛函數表,實在要這樣寫的話,CObj不能有什麼虛函數之類的東西,只能是非常簡單的類,和C的「struct「差不多的。
[code]
class test
{
public:
test() {}
protected:
int i;
int j;
};
int
main()
{
test * p;
int i;
i = 1000;
p = new test[i];
printf("%x\n", (int)p);
}
[/code] |
在線等待,指針問題,求助各位大蝦
如果是用VC的話,它有個特殊的new操作符:
template<class TYPE>;
void ConstructElements(TYPE* pElements, int nCount)
{
ASSERT(nCount == 0 ||AfxIsValidAddress(pElements, nCount * sizeof(TYPE)));
// first do bit-wise zero initialization
memset((void*)pElements, 0, nCount * sizeof(TYPE));
// then call the constructor(s)
for (; nCount--; pElements++)
::new((void*)pElements) TYPE;
} |
在線等待,指針問題,求助各位大蝦
qjlemon 兄,你這樣對像數目還是固定的呀,我要實現可變的要求 |
在線等待,指針問題,求助各位大蝦
你是說分配以後還要可變嗎?還是要在分配時可變?
i=1000,i不就是可變的嗎?否則為什麼不直接new test[1000]呢。 |
在線等待,指針問題,求助各位大蝦
pObj = new (CObj *)[8];
不可以嗎? |
在線等待,指針問題,求助各位大蝦
qjlemon 兄,你的方法能實現,因為個數是從配置文件讀出來的,謝謝各位大哥參與討論,還有其他好辦法? |
在線等待,指針問題,求助各位大蝦
-->[code 發表:[/i]
vector<CObj*>; a;
CObj *b = new(CObj);
a.push_back(b);[/code]
大致是這個樣子吧,你找stl 的vector的資料看看怎麼對vector
進行操作。 |
在線等待,指針問題,求助各位大蝦
我要引用第n個元素的成員函數或成員變量,怎麼引用? |
在線等待,指針問題,求助各位大蝦
| |
|