Bạn có thể khởi tạo các thành viên mảng như sử dụng C++ 11 trình biên dịch này sử dụng -std = C++ 11 hoặc -std = gnu ++ 11 tùy chọn
struct student {
private :
int marks[5];
public :
char name[30];
int rollno;
student(int arr[], const char *name, int rno):marks{arr[0], arr[1], arr[2], arr[3], arr[4]}{
strcpy(this->name, name);
this->rollno = rno;
}
void printInfo() {
cout <<"Name : "<<this->name<<endl;
cout <<"Roll No : "<<this->rollno<<endl;
for(int i=0; i< 5; i++) {
cout <<"marks : "<<marks[i]<<endl;
}
}
};
int main(int argc, char *argv[]) {
int arr[] = {40,50,55,60,46};
//this dynamic array passing is possible in c++11 so use option -std=c++11
struct student s1(new int[5]{40, 50, 55, 60, 46}, "Mayur", 56);
//can't access the private variable
//cout <<"Mark1 : "<<s1.marks[0]<<endl;
s1.printInfo();`enter code here`
}
Nguồn
2017-10-03 15:17:57
Tôi có C++ 10. Vì vậy, tôi đã phải làm điều đó một cách khó khăn. Cảm ơn sự phản hồi của bạn. –
Là sig(): khai báo hàm khởi tạo? Câu trả lời này sẽ hữu ích hơn cho người mới bắt đầu nếu nó phù hợp với bố cục cơ bản của câu hỏi, vì vậy chúng ta có thể thấy cách hàm tạo hoạt động. '{}' Trống là gì? – GreenAsJade
Và tại sao không có ';' sau bộ khởi tạo? – GreenAsJade