【发布时间】:2020-04-11 18:16:40
【问题描述】:
我有一个类有一个声明的方法,但没有在任何地方定义/使用。我希望这段代码会产生链接错误,但事实并非如此。看起来编译器足够聪明,可以删除死代码。哪个默认优化正在执行此操作?如何显式禁用它以生成错误?
#include <iostream>
using namespace std;
class Base{
public:
int x;
string name;
void set(int val){ x = val;};
int get(){ return x;}
void Init();
};
int main() {
Base base;
base.set(10);
cout << base.get() << endl;
return 0;
}
EDIT1:这里没有定义 Init() 函数,也没有在任何地方使用。所以,我希望编译器会抱怨这个没有定义。但看不到任何错误/警告。
提前致谢。
【问题讨论】:
-
什么死代码?这里有什么问题?为什么你希望编译器会窒息呢?
-
@curiousguy 添加了详细信息。感谢您指出。
标签: c++ class undefined-function