Cześć, muszę się trochę podszkolić z C# na wakacyjne praktyki. Ktoś może polecić jakąś literaturę/kurs gdzie mógłbym ogarnąć C# znając już trochę obiektowego C++ oraz Pythona? Rozumiem, że jakiś wstęp do .NET też by się przydał, bo będę tworzył jakieś małe programy okienkowe. Niestety moje doświadczenie w programowaniu kończy się na uczelnianych projektach :) Nie napisałem jeszcze nic okienkowego i w ogóle nie wiem od czego zacząć :/

#programowanie #csharp #cpp
Mirkowie i mirkówny spod tagu #programowanie. Mam dziwaczny problem z moją klasą i jej metodami w #cpp. Mianowicie klasa służy mi do obsługi dwuwymiarowej macierzy, ale dane przechowywane są w tablicy jednowymiarowej (a klasę do obsługi takich macierzy piszę zarówno dla treningu jak i do uproszczenia pewnych zadań które muszę wykonać na laboratorium w studbazie).

Do rzeczy:

Przeciążyłem operator mnożenia, by taką macierz móc sobie bez problemu mnożyć przez pewien
@gogiel: To nie operator a konstruktor, to raz. Zaimplementowany jest prawidłowo, to dwa. Użycie

*this
jest najzwyklejsze w świecie i często wykorzystywane, to trzy. Operator mnożenia zwraca obiekt przez wartość, więc nie ma tu nic do rzeczy to, że zwracany obiekt jest na stosie czy stercie, i tak zostanie zwrócona jego kopia. To cztery.
@L24D: Masz konstruktor kopiujący, więc potrzebujesz również operatora przypisania dla klasy. Przy operacji

test = test * 2;
tak naprawdę odpala się coś takiego:

test.


operator
```**```
=(test.
```**```
operator
```**```
*(2));
Mam tablicę oceny. Wygląda to tak:

const unsigned ilosc*ocen = 6;


int oceny[ilosc*ocen];

Ale chciałbym, najpierw zapytać użytkownika, ile tych ocen chce on podać. No i nie bardzo wiem jak podać wielkość tablicy, bo kompilator mi woła, że to musi być koniecznie stała. Czytam o tych dynamicznych tablicach, ale jak to zrobić nie wiem. Ktoś może pomóc? #cpp #uczesiekodzic
@LarryLaffer: Uczelnie korzystają bo na uczelniach najczęściej programowania uczą leśne dziadki które programowania nauczyli się ze 20 lat temu i bez przerwy wałkują ten sam temat nawet nie zauważając zmian w języku więc to nie żaden argument. Tym bardziej że na wielu jeszcze Pacala uczą ...

To nie jest takie proste. Dokumentacja ci wszystkiego nie opisze i jak ty nie zrozumiesz działania czegoś bo akurat tego w twojej książce sprzed 15
ContDynArray.h:97:6: note: bool ContDynArray<E>::member(const E&) const [with E = int]


Container.h:35:19: note: sizet Container<E>::size() const [with E = int, sizet = long unsigned int]


Container.h:38:19: note: sizet Container<E>::apply(const Functor<E>&, Order) const [with E = int, sizet = long unsigned int]


ContDynArray.h:25:15: note: E ContDynArray<E>::min() const [with E = int]


ContDynArray.h:26:15: note: E ContDynArray<E>::max() const [with E = int]


ContDynArray.h:111:15: note: std::ostream& ContDynArray<E>::print(std::ostream&) const [with E = int, std::ostream = std::basic_ostream<char>]

@erwit:
Mireczki taka sprawa:

generuję sobie w programie macierz liczb, każda o wartości 0 lub 1 w ten sposób:

srand(time(


NULL
```**```
));
``````
    
```**```
for
```**```
(
```**```
int
```**```
 i =0; i<40; i++)
``````
    {
``````
        
```**```
for
```**```
(
```**```
int
```**```
 k = 0; k<40;k++)
``````
        {
``````
        
```**```
if
```**```
(rand()%2) tablica[i][k] = 
```**```
false
```**```
;
``````
        
```**```
else
```**```
 tablica[i][k] = 
```**```
true
```**```
;
``````
        }
``````
    }

po czym
źródło: comment_JU8Q4xAM3A7Eaw7KNDSCOevbOXyvJpLI.jpg
No tak poprawiłem problem z klockami które się usuwały nie tak jak powinny ale teraz dopiero zauważyłem że program zużywa w okolicach 100% na jednym rdzeniu. Dziwi mnie bo nie mam żadnej funkcji która by tak mocno obciążała program.

Na oko strzelam że to będzie związane plikiem i menu.cpp i game.cpp gdzie jest z:

SDL_PollEvent(eng->event)
ale jak wiadomo na oko to jeden umarł

Tu daje kod:

https://github.com/sylwke3100/BlockEraser2

Jak już mówiłem do skompilowania
@losiul: Pewnie jeszcze sporo rzeczy jest do poprawki w kodzie nie tylko takie pierdółki. Zamysł tego bajzlu był taki żeby oddzielić to o rysuje (coś aka Silnik) z samą grą. Problemem jest to że nie mam pomysłu jak przenieść obsługę sterowania (z tymi wchilami)