virtual
用 GCC 标记方法的未使用参数参数__attribute__((unused))
和将参数强制转换为之间是否有任何功能差异(void)
?
class Other {
virtual int sum(int a, int b, int c);
};
class Example : Other {
virtual int sum(int a, int b, int c __attribute__((unused))) override {
return a + b;
}
};
class Example2 : Other {
virtual int sum(int a, int b, int c) override {
(void)c;
return a + b;
}
};
两者都可以消除未使用的参数警告,如果以后使用该变量,它们都不会发出警告。虽然 GCC__attribute__
更长。