Tôi đang thực hiện một dự án và sau nhiều lần tìm kiếm các lỗi trong tiêu đề, tôi gần như lạc lối. Nếu có thể, hãy nhờ trợ giúp giải quyết vấn đề này.
lớp ManagedArray
{
public:
phần tử float *;
int numberOfElements;
/* hàm tạo mặc định */
ManagedArray() :elements(NULL){};
ManagedArray() :numberOfElements(0){} <--Lỗi ở đâu
/*người truy cập*/
int size() {return numberOfElements }
float get(int chỉ mục) {trả về phần tử[chỉ mục] }
Theo tiêu chuẩn C++ (Thành viên lớp 9.2)
- ...Một thành viên không được khai báo hai lần trong đặc tả thành viên, ngoại trừ việc một lớp lồng nhau hoặc mẫu lớp thành viên có thể được khai báo và sau đó được xác định, ngoại trừ việc một bảng liệt kê có thể được đưa ra bằng một khai báo opaque-enum-và sau đó được khai báo lại bằng một công cụ xác định enum.
Bạn đã khai báo và định nghĩa hàm tạo mặc định hai lần
ManagedArray() :elements(NULL){};
ManagedArray() :numberOfElements(0){} <--Lỗi ở đâu
Ví dụ: bạn có thể thêm tham số vào hàm tạo thứ hai
ManagedArray() :elements(NULL){};
ManagedArray( int n ) :numberOfElements(n){};
hoặc cách sau
rõ ràng ManagedArray( int n ) :numberOfElements(n){};
^^ ^^ ^^ ^^
Xem xét các thành viên dữ liệu sốCác phần tử
Tốt nhất nên sử dụng size_t
gõ thay vì gõ int
Ít nhất là vì số phần tử không thể âm.
Ngoài ra, cả hai hàm tạo nên khởi tạo tất cả các thành viên dữ liệu.
例如
ManagedArray() :elements(NULL), numberOfElements( 0 ){};
Tôi là một lập trình viên xuất sắc, rất giỏi!