Mam dwie klasyW jaki sposób używasz innego niż domyślny konstruktora dla członka?
class a {
public:
a(int i);
};
class b {
public:
b(); //Gives me an error here, because it tries to find constructor a::a()
a aInstance;
}
Jak mogę to tak, że aInstance jest tworzony z (int i) zamiast próbować szukać domyślnego konstruktora? Zasadniczo chcę kontrolować wywoływanie konstruktora z wewnątrz konstruktora b.
Zdaję sobie sprawę, że jest to przykład, a nie rzeczywisty kod, ale tylko ze względu na to, że ~~ jest jakością kodu pedantycznego ~, generalnie nie jest dobrym pomysłem uczynienie pól "publicznymi". Pewnie, są pewne przypadki użycia i nie jest to całkowicie nielegalne, ale zanim to zrobisz, upewnij się, że jest jakiś powód poza tym, że "to upraszcza część mojego kodu" ("to upraszcza dużo mojego kodu" jest całkowicie dopuszczalnym powodem , choć) –