c++ - 澄清函数体/C++

标签 c++

我有这个类.h:

class CItemPriceListTableCache: public cache< TItemPriceListTable >
{
public:
    virtual ~CItemPriceListTableCache();    
};

我有这个 class.cpp :
CItemPriceListTableCache::~CItemPriceListTableCache()
{

}

现在来提问:
为什么是 ~CItemPriceListTableCache功能体空?
如果我从 class.cpp 中删除~CItemPriceListTableCache应该可以 ?会影响我的代码吗?我应该用什么替换~CItemPriceListTableCache功能体?我只是不喜欢看到空函数。即使我有一行函数对我来说也可以,我只是不喜欢函数为空。
如果我从类中完成删除析构函数的虚拟声明应该可以吗?

编辑 1:从问题中删除了无用的 txt。

编辑2:
类.h
class DH2KeyAgreement: public KeyAgreement
{
public:
    DH2KeyAgreement();
};

类.cpp
DH2KeyAgreement::DH2KeyAgreement() : dh_(), dh2_(dh_)
{

}

我应该如何在这里使用 default ?

应该这样好吗?
class DH2KeyAgreement: public KeyAgreement
{
public:
    DH2KeyAgreement():dh_(), dh2_(dh_)=default;
};

最佳答案

Why is ~CItemPriceListTableCache funtion body empty ?



因为在销毁时不需要采取任何特殊操作,但该类的析构函数仍然应该是可调用的。

If i delete from class.cpp the ~CItemPriceListTableCache should be ok ? Will affect this my codes ?



是的,您将留下一个未定义的引用错误。

With what should i replace ~CItemPriceListTableCache function body ? I just don't like to see empty functions. Even if i have one line in function is ok for me , i just don't like function to be empty.



你可以写
virtual ~CItemPriceListTableCache() {}

或者
virtual ~CItemPriceListTableCache() = default;

在你的类(class)声明中。

If i complete delete virtual decalaration of destructor from class should be ok ?



是的,编译器生成的默认析构函数就可以了。

关于c++ - 澄清函数体/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37910195/

相关文章:

c++ - 进入文件中间进行二进制搜索的方法

c++ - 当您使用库中的抽象类时,您如何解决 "deep copy of an abstract class"问题?

c++ - Win32检测窗口是否最大化/停靠到半屏(Win键+左/右)

c++ - 在C++中为作业分配创建一个IntegerNumber类,以将大整数求和为超出长范围的字符串

c++ - 错误C3892:“std::_ Tree_unchecked_const_iterator

c++ - gdb继续而不是单步执行

c++ - 访问属于 WiFi 监听器回调成员函数的类的成员

c++ - 深度 + Stencil 帧缓冲问题

c++ - 为什么函数中的本地数组似乎可以防止 TCO?

c++ - 在 C++ 中安全地传递对抽象类的引用