Was ist Objekt-Slicing (object slicing) in C++ und wie kann man es vermeiden?
Hallo! Ich habe vor kurzem angefangen, C++ zu lernen, und bin auf ein Problem gestoßen, das ich nicht verstehen kann. Ich habe eine Basisklasse `Animal` und eine abgeleitete Klasse `Dog`, die ein Feld `breed` hinzufügt. Ich habe eine Funktion geschrieben, die `Animal` by value nimmt. Wenn ich ein `Dog`-Objekt an sie übergebe, gibt der Compiler keinen Fehler aus, aber in der Funktion verliere ich die Daten über die Rasse (Feld `breed`). Hier ist mein Code:
```cpp
#include
#include
class Animal {
public:
Animal(const std::string& name) : name_(name) {}
virtual void speak() const { std::cout << "Animal sound\n"; }
std::string getName() const { return name_; }
private:
std::string name_;
};
class Dog : public Animal {
public:
Dog(const std::string& name, const std::string& breed)
: Animal(name), breed_(bre
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Arbeiten mit Aufgabenwarteschlangen in JavaScript in der Praxis mit Node.js
Integrationstests von Rust mit Docker: Vollständiger Leitfaden
TypeScript von Null auf PRO: Die besten YouTube-Kanäle und Kurse im Jahr 2024
GraphQL vs REST in Kotlin: Was man 2025 für das Backend wählen sollte