carton.cpp

来自「一本语言类编程书籍」· C++ 代码 · 共 40 行

CPP
40
字号
// Carton.cpp
#include "Carton.h"
#include <cstring>
#include <iostream>
using std::cout;
using std::endl;

// Constructor which can also act as default constructor - 
//            calls default base constructor automatically
Carton::Carton(const char* pStr) {
  pMaterial = new char[strlen(pStr)+1];     // Allocate space for the string
  std::strcpy( pMaterial, pStr);                 // Copy it
  cout << "Carton constructor 1" << endl;
}

// Constructor explicitly calling the base constructor
Carton::Carton(double lv, double wv, double hv, const char* pStr): Box(lv, wv, hv) {
  pMaterial = new char[strlen(pStr)+1];     // Allocate space for the string
  std::strcpy(pMaterial, pStr);             // Copy it
  cout << "Carton constructor 2" << endl;
}

// Destructor
Carton::~Carton() {
  cout << "Carton destructor. Material = " << pMaterial << endl;
  delete[] pMaterial; 
}

// Function to calculate the volume of a Carton object
double Carton::volume() const { 
  return length*width*height; 
}

// Copy constructor
Carton::Carton(const Carton& aCarton) : Box(aCarton) {
  pMaterial = new char[strlen(aCarton.pMaterial)+1]; // Allocate space for the string
  strcpy(pMaterial, aCarton.pMaterial);              // Copy it 
  cout <<  "Carton copy constructor" << endl;
}

⌨️ 快捷键说明

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