c++ - 在 C++ 中是否可以禁止在编译时调用某个函数?

标签 c++

我有 2 个类:

class Entity {
   void addChild(Entity* e);
};

class Control : public Entity {

};

我想做的是不允许将控件添加为非控件的子项。所以,例如:

Control c;
Entity e;
e.addChild(c); // This line would throw an error (at compile time if possible);

我首先想到的是将其添加到实体中:

void addChild(Control* c){
    assert(false);
};

注意:Entity 和Control 都是抽象类,但都有很多子类。

但是有什么方法可以在编译时得到错误吗?

最佳答案

您可以声明函数,但不要实现它。如果您尝试使用它,将会出现链接器错误。

关于c++ - 在 C++ 中是否可以禁止在编译时调用某个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524634/

相关文章:

c++ - 无法调用我的函数

c++ - 将固定大小的特征矩阵作为参数传递给调用动态大小矩阵的函数

c++ - 确保 C++(数字图像处理)程序和使用文件的处理程序之间的成功通信

c++ - 如何将外部共享库链接到 native 扩展?

c++ - 是否可以代理任何功能

c++ 到 vb.net,情侣对话问题

c++ - 为什么 stroull() 不能处理具有十六进制值的字节数组?

c++ - 头文件中类型名称的显式限定

c++ - 简单问题:为什么字符串库函数std::string::find总是返回std::string::npos?

c++ - 插入 C++ 预处理器