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好的,谢谢你解决了我的问题,我很困惑。谢谢你的帮助