Luați în considerare următorul exemplu programul
Producția sa la consola:
O altă diferență importantă este faptul că o clasă are un singur constructor cu o anumită semnătură, iar cealaltă clasă are trei constructori cu semnături diferite.
Luați în considerare un alt demo
Aici, în clasa C, puteți declara un constructor implicit pentru o clasa B ca prieten clasa C. Cu toate acestea, nu se poate face același lucru cu constructorul implicit al clasei A. să anunțe prietenul său din clasa C. Deoarece constructorul implicit din clasa A are un alt semnătură.
Ai deja să scrie
dar acest lucru nu poate fi ceea ce doriți să primiți. Asta este, dacă, de exemplu, a dorit a fost un alt constructor, care se numește doar cu nici un argument.
Asta este, din nou, în cazul în care există unele designeri, posibilitățile tale mai largi.
Dacă luăm în considerare nu constructori, și funcția, diferența este chiar mai semnificativă.
Argumentele implicite nu afectează tipul de funcții. Prin urmare, de exemplu, dacă declarați o funcție ca
apoi, în ciuda argumentului implicit, și faptul că aceasta poate provoca atât
cu toate acestea, acest tip void (int). Și acest lucru la rândul său, înseamnă că nu se poate, de exemplu, a scrie
deoarece parametrul funcțiilor h de tip void (int). și o funcție folosită ca argument de tip void (int)
Dacă declarați două funcții în loc de una
acest apel
Acesta va fi corect, deoarece există o funcție cu un parametru.
Diferențele a explicat deja @Vlad de la Moscova, propun doar două opțiuni pe această temă, oa treia opțiune:
În opinia mea, această opțiune este cel mai bun, deoarece are un constructor explicit cu un singur argument, care este o bună practică și ajută pentru a evita unele dintre capcanele. Pe de altă parte, în mod explicit pentru designerii care au mai mult sau mai puțin aceleași argumente, în opinia mea, este de prisos. pentru că accidental a crea un obiect de mai mult de un argument este problematică, și anume că am atribuit designerul odnoargumentnova explicit - de protecție împotriva erorilor aleatoare.
Și cel mai important, avem doar un singur constructor care inițializează domeniu. Toate celelalte lucrări prin ea, ceea ce ajută la minimizarea erorii de inițializare.
Răspuns 4 '15 decembrie la 05:36