你能解构一个参数化的构造函数吗

时间:2019-06-25 05:24:56

标签: c++ class

我已经搜索了许多网站并看到了许多程序,但是找不到单个程序来完成。这是从教程出发的一个示例

16580522

我自己尝试过,但是我没有用,可能是因为我编写的代码不是很好,但是我想知道是否有解构参数化构造函数的选项,并且声明void作为参数(例如:#include <iostream> using namespace std; class Line { public: void setLength( double len ); ~setLength(); <----- An error double getLength( void ); Line(); // This is the constructor declaration ~Line(); // This is the destructor: declaration private: double length; }; // Member functions definitions including constructor Line::Line(void) { cout << "Object is being created" << endl; } Line::~Line(void) { cout << "Object is being deleted" << endl; } void Line::setLength( double len ) { length = len; } Line::~setLenght() //I tried void Line::~setLength too { cout<<"The function is deleted:" } double Line::getLength( void ) { return length; } // Main function for the program int main() { Line line; // set line length line.setLength(6.0); cout << "Length of line : " << line.getLength() <<endl; return 0; } )使其成为参数化的构造函数。

1 个答案:

答案 0 :(得分:2)

有几点可以减轻您的困惑:

  1. setLength不是构造函数,它只是类Line的方法。
  2. 方法没有析构函数,只有类有,而且它们始终称为~ClassName
  3. 如果析构函数没有做任何有意义的事情(例如分配资源),则实际上不需要提供析构函数。
  4. 使用void作为单个参数声明函数是一种不带参数声明函数的传统C方式,在C ++中实际上并不需要。同样,它并不是真正针对析构函数的。