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

C++ 你能解构一个参数化的构造函数吗,c++,class,C++,Class,我搜索了很多网站,看到了很多程序,但找不到一个单独的程序 #include <iostream> using namespace std; class Line { public: void setLength( double len ); ~setLength(); <----- An error double getLength( void ); Line(); // This is the constructor

我搜索了很多网站,看到了很多程序,但找不到一个单独的程序

#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;
}
#包括
使用名称空间std;
班级线{
公众:
空隙设置长度(双透镜);

~setLength();有两点可以缓解您的困惑:

  • setLength
    不是构造函数,它只是类
    Line
    的一个方法
  • 方法没有析构函数,只有类有,它们总是被称为
    ~ClassName
  • 如果析构函数没有做任何有意义的事情(比如释放资源),那么实际上不需要提供析构函数
  • 用“Cuth.Value<代码>声明一个函数作为一个参数是一种传统的C方法,它声明了一个没有参数的函数,实际上不是C++所需要的。它也不是真正的析构函数。

  • 有人能告诉我这个警告是什么意思“你所问的问题似乎是主观的,很可能是封闭的”。我在发帖之前就知道了你所说的“解构”是什么意思参数化构造函数?析构函数将销毁所创建的对象,不管它是否由参数化构造函数创建。如果helps@BallRall:您不会破坏函数。您会破坏对象。函数只会永远存在。(忽略动态链接。)关于你所问的问题,似乎是主观的,很可能是封闭的,通常这是一个警告,你的问题需要太多的猜测或意见才能产生一个好的答案。在这种情况下,我认为这是一个假阳性,启发式吐出这些警告的人感到困惑,做出了一个错误的决定。事实上,如果它违反了,你实际上lly不应该!@r3mus n0x好的,谢谢你解决了我的问题,我很困惑。谢谢你的帮助