【问题标题】:Destructor with copy constructor带有复制构造函数的析构函数
【发布时间】:2025-12-13 01:20:07
【问题描述】:

我想在 CPP 中使用析构函数,但是编译器给出警告“未定义的引用”。

class trial{
private:
    int number;
public:
    trial(){};
    trial(int num) {
        number=num;
    };
    ~trial();
};

试用类构造函数从主函数中获取值。通过告诉我构造函数中有什么不正确来帮助我。在此先感谢:)

【问题讨论】:

  • 你的析构函数没有实现。复制ctor很好。
  • 找出trial(){};~trial();之间的区别(~除外)
  • 在你的构造函数末尾有额外的;s。

标签: c++ destructor copy-constructor


【解决方案1】:

声明析构函数~trial();,但您没有定义那个。

要在类声明中定义析构函数,请使用{} 而不是;,如~trial(){}

要在类声明之外(在源文件中)定义析构函数,可以这样写:

trial::~trial() {
    // do what you want
}

【讨论】:

  • 或者根本不声明