[問題] C++ 如何寫物件陣列傳值
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C++
問題(Question):
想請問大家一個問題
情況是這樣 我有一個大class A 裡面會使用小class B
我在A中想宣告一個class C物件的陣列
並在A中呼叫B的時候 讓B的函式能去改動這個物件陣列
大致類似這樣
class C //某種物件
class B //一個做事的class
{
void function();
}
class A //一個類似main的class
{
vector<C> c_array; // 我想建立型態C的array
B b; //建立一個B
B.function(); //利用B來做某件事
}
我想在B.function中修改c_array的值
但我不知道怎麼寫比較好
作法1. 用vector寫這個陣列 但在A設定函式參數上就會錯了
例如 class B{ void function(vector<C>) };
在A中寫vector<C> vec;
B.function(vec);
出現error LNK2019: 無法解析的外部符號
我不知道如何傳vector型態的東西當參數
而且還要是call-by-reference的
作法2. 用指標寫這個物件
但我用malloc時會錯 不知道哪裡有問題了
例如我寫 C* c = malloc(sizeof(C)*100);
但呼叫C[0] 時就當了
作法3. 在A中用static 的vector寫陣列
但我沒辦法讓他在B中被呼叫
因為A已經include B了 B不能在include A
作法4. 用全域變數
全域變數好像不能用在vector物件?
他會說我的全域變數物件沒初始化
可是vector物件要怎麼初始化?
這應該是個很基本的問題
但一時三刻找不到好方法
希望大家可以幫我~謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.84.127.175
→
03/21 02:12, , 1F
03/21 02:12, 1F
→
03/21 02:14, , 2F
03/21 02:14, 2F
※ 編輯: SKS 來自: 219.84.127.175 (03/21 02:24)
→
03/21 02:29, , 3F
03/21 02:29, 3F
→
03/21 02:43, , 4F
03/21 02:43, 4F
→
03/21 02:43, , 5F
03/21 02:43, 5F
→
03/21 02:44, , 6F
03/21 02:44, 6F
推
03/21 02:46, , 7F
03/21 02:46, 7F
→
03/21 02:46, , 8F
03/21 02:46, 8F
→
03/21 02:58, , 9F
03/21 02:58, 9F
→
03/21 03:04, , 10F
03/21 03:04, 10F
※ 編輯: SKS 來自: 219.84.127.175 (03/21 03:08)
→
03/21 03:15, , 11F
03/21 03:15, 11F
推
03/21 03:18, , 12F
03/21 03:18, 12F
→
03/21 03:20, , 13F
03/21 03:20, 13F
※ 編輯: SKS 來自: 219.84.127.175 (03/21 03:26)
→
03/21 03:29, , 14F
03/21 03:29, 14F
→
03/21 03:30, , 15F
03/21 03:30, 15F
→
03/21 09:04, , 16F
03/21 09:04, 16F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章