È possibile inizializzare i membri di matrice come questo utilizzando C++ 11 compilatore utilizzando -std = C++ 11 o = -STD gnu ++ 11 opzione
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`
}
fonte
2017-10-03 15:17:57
ho C++ 10. Quindi ho dovuto farlo in modo duro. Grazie per tutte le vostre risposte. –
È sig(): dichiara il costruttore? Questa risposta sarebbe più utile per i principianti se corrispondesse al layout di base della domanda, così possiamo vedere come funziona il costruttore. Cos'è il '' {} 'vuoto? – GreenAsJade
E perché non c'è ';' dopo l'inizializzatore? – GreenAsJade