Poprawiono program i stworzył przykładową realizację class Cat
:
#include <iostream>
#include <string>
class Cat {
public:
Cat(const std::string& name_ = "Kitty")
: name(name_)
{
std::cout << "Cat " << name << " created." << std::endl;
}
~Cat(){
std::cout << "Cat " << name << " destroyed." << std::endl;
}
void eatFood(){
std::cout << "Food eaten by cat named " << name << "." << std::endl;
}
private:
std::string name;
};
Cat* makeCat1() {
return new Cat("Cat1");
}
Cat makeCat2() {
return Cat("Cat2");
}
int main(){
Cat kit = makeCat2();
kit.eatFood();
Cat *molly = makeCat1();
molly->eatFood();
delete molly;
return 0;
}
To będzie produkować wyjście:
Cat Cat2 created.
Food eaten by cat named Cat2.
Cat Cat1 created.
Food eaten by cat named Cat1.
Cat Cat1 destroyed.
Cat Cat2 destroyed.
proponuję nauczyć się podstawowej książki o C++ deski do deski przed kontynuowaniem .
W przykładzie brakuje typu zwracanego przez makeCat(). – pascal
I ma więcej błędów. Jeśli chcesz wiedzieć o błędzie podczas kompilacji, powinieneś przynajmniej opublikować kod kompilacyjny. – sbi
Kevin: przeczytaj o STL auto_ptr i boost shared_ptr. –