cuốn sách gpt4 ai đã làm

c++ - 带指针的动态分配 C++

In lại Tác giả: Walker 123 更新时间:2023-11-28 02:53:00 26 4
mua khóa gpt4 Nike

Transaction *trans = new Transaction[MAX_NUM];
int currentnum;


addtrans(string balance, double amt){

trans[currentnum] = new Transaction(balance, amt);
currentnum ++;
}

//constructor

Transaction(string type, double amt){

Transtype = type;
Transamt = amt;
}

我创建了一个指向数组的指针。

我正在尝试将余额和金额发送到数组,但出现错误“不匹配‘operator=’”

câu trả lời hay nhất

Transaction *trans = new Transaction[MAX_NUM];

这为您提供了一个指向 Transaction 对象数组的指针。

trans[currentnum] = new Transaction(balance, amt);

这会尝试分配给数组中的 Transaction 对象,但 new Transaction(...) 调用会返回一个指针 đến Transaction,指针不是数组的数据元素类型,因此无法编译。

你可以说:

trans[currentnum] = Transaction(balance, amt);

或者,您可以这样做:

Transaction** trans = new (Transaction*)[MAX_NUM];
trans[currentnum] = new Transaction(balance, amt);

但使用它几乎肯定更好:

std::vector trans(MAX_NUM);

如果你真的必须有 MAX_NUM 个默认构造的元素,或者更好......

std::vector trans;

只需 .push_back(Transaction(balance,amt)) 即可,因此您基本上不必担心任何 MAX_NUM 或结束索引的容器。如果您有 C++11 编译器,您可以使用 .emplace_back(balance, amt) 以获得更好的性能并直接在容器内构建事务对象。

关于c++ - 带指针的动态分配 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22624038/

26 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress