list0914.cpp

来自「teach yourself C++ in 21 days 第五版」· C++ 代码 · 共 45 行

CPP
45
字号
// Listing 9.14 - Resolving memory leaks
  
#include <iostream>
  
class SimpleCat
{
   public:
     SimpleCat (int age, int weight);
     ~SimpleCat() {}
     int GetAge() { return itsAge; }
     int GetWeight() { return itsWeight; }
  
   private:  
     int itsAge;
     int itsWeight;
};
  
SimpleCat::SimpleCat(int age, int weight)
{
     itsAge = age;
     itsWeight = weight;
}
  
SimpleCat & TheFunction();
  
int main()
{
    SimpleCat & rCat = TheFunction();
    int age = rCat.GetAge();
    std::cout << "rCat is " << age << " years old!" << std::endl;
    std::cout << "&rCat: " << &rCat << std::endl;
    // How do you get rid of that memory?
    SimpleCat * pCat = &rCat;
    delete pCat;
    // Uh oh, rCat now refers to ??
    return 0;
}

SimpleCat &TheFunction()
{
    SimpleCat * pFrisky = new SimpleCat(5,9);
    std::cout << "pFrisky: " << pFrisky << std::endl;
    return *pFrisky;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?