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

C++/Arduino: mảng int động

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 01:25:34 25 4
mua khóa gpt4 Nike

Tôi đang viết một lớp học cho Arduino. Cho đến nay rất tốt, nhưng bây giờ tôi hơi bế tắc ...

Tôi đã khai báo một mảng int trong lớp của mình

lớp myClass
{
công khai: MyClass(kích thước int);
private:
int _intArray[];
};

Khi tôi khởi tạo lớp MyClass myClass1(5) , Tôi cần mảng trông như thế này {0,0,0,0,0}.

Câu hỏi của tôi: Tôi cần làm gì để mảng chứa số 0 có "kích thước"?

MyClass::MyClass(kích thước int)
{
// điều gì xảy ra ở đây để khởi tạo mảng một cách linh hoạt
for(int i=0; i < size; i++) _intArray[i] = 0;
}

EDIT: Theo dõi các câu trả lời khác nhau bên dưới, Arduino không bao gồm thư viện tiêu chuẩn, thật không may std::vector không phải là một lựa chọn

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

Mã của bạn khi tôi viết điều này:

lớp myClass
{
công khai: MyClass(kích thước int);
private:
int _intArray[];
};

_intArray Khai báo không hợp lệ C++: mảng nguyên thủy yêu cầu kích thước được chỉ định tại thời điểm biên dịch.

Bạn có thể sử dụng thay thế std::vector:

lớp myClass
{
public:
MyClass(kích thước int)
: intArray_( size ) // Vector có kích thước cho trước với các phần tử có giá trị bằng 0.
{}

private:
std::vector intArray_;
};

Lưu ý 1: Một số trình biên dịch có thể cho phép mã gốc của bạn dưới dạng phần mở rộng ngôn ngữ để hỗ trợ "hack cấu trúc" (đây là kỹ thuật C và không bắt buộc trong C++).

Lưu ý 2:Tôi đã thay đổi tên thành viên của bạn. Nói chung, dấu gạch dưới ở đầu tên có thể gây ra vấn đề vì chúng có thể xung đột với tên trong quá trình triển khai C++.

chúc mừng,

Về C++/Arduino: mảng int động, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/4358975/

25 4 0
Taklimakan
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