konstruktor anonimowej klasy

0

http://pastebin.com/9SuLTgfK
W jaki sposób stworzyć konstruktor obiektu B klasy A?

0

Obiekt B istnieje w każdej instancji klasy A.

0

Owszem, i o to chodzi. Kiedy tworzony jest obiekt klasy A, najpierw tworzone są wszystkie zmienne, obiekty wewnętrzne, przygotowywana pamięć, etc. I właśnie - chciałbym, żeby na etapie tworzenia obiektu B wykonywał się jego konstruktor domyślny, który jednak robi coś sensownego. Mógłbym nazwać klasę i już. Ale zastanawiam się, czy bez tego jest to możliwe.

1

Nie można zdefiniować jawnie konstruktora dla klasy anonimowej. Podlinkowałbym na to odpowiednią prafkę z standardu ale mi się nie chce ; p

0

W sumie dlaczego nie mogliby tego naprawić w kolejnej wersji języka?

1

@up lol a jak miałby wyglądać taki nienazwany, zdefiniowany konstruktor? No.... właśnie nijak. Bingo, szach mat, dziękuję dobranoc.

0

A jak miałaby wyglądać nazwa "anonimowej" funkcji? Nijak, ale wymyślili. Takie konstruktory też mogliby wymyśleć chociażby jako
() {...}

0

@up czyli chciałbyś użyć lambdy do zdefiniowania konstruktora? No może zamiast klasy anonimowej machnij tam lambdę?

0

Nie rozumiesz mojej wypowiedzi. Twierdzę, że do standardu mogłyby zostać dorzucone konstruktory klasy anonimowej. Przykład bardziej realny: co jeśli w takiej anonimowej klasie chcielibyśmy tworzyć obiekty operatorem new[]. Co jeśli ta anonimowa klasa miałaby być listą. Nie jest to możliwe do zrealizowania, jednak dodając konstruktory i destruktory klasy anonimowej - jak najbardziej. I jak już pisałem, składnia mogłaby wyglądać chociażby tak:
http://pastebin.com/yJN4j6Q6

0

Proste pytanie - po co tak skoro można nazwać tę klasę? Jeśli klasa jest trywialna może być anonimowa. W innym przypadku należy ją nazwać. Nie jest zasada jakiegoś języka, tylko raczej ogólna zasada, która dotyczy wielu języków.

0

To prawda, ale równie dobrze mogłoby się powiedzieć, że takie konstruktory powinny istnieć - bo dlaczego nie? Bo nie mają nazwy? A lambdy?
W każdym razie - dzięki za odpowiedź.

0

A jak według Ciebie ma się lambda do konstruktora? Co dalej, lambda operator dodawania?

1

Zawsze możesz złożyć proposal ale imho nie ma szans żeby to przeszło, bo to przede wszystkim nie jest w żaden sposób użyteczne.
Poza tym ciekawe jak by to miało działać dla konstruktorów konwertujących i operatorów konwersji. Masz jakiś pomysł? Skoro nie ma nazwanego typu dla tej klasy to co miało by się dziać? Magia? Jakiś implicit cast jak dla lambdy czy co?

1 użytkowników online, w tym zalogowanych: 0, gości: 1