如何判断可执行文件是否为.NET应用程序?
我不想安装Visual Studio.但如果我必须,我会.命令行程序是首选.
如果以前回答过这个问题我很抱歉,我无法在任何地方找到答案.
我在保持const正确性方面遇到了麻烦.
我有以下定义.
struct C {
int x,y;
};
class A {
public:
C c;
C& getC() { return c; }
};
class B {
public:
void forwardInfo(const A& a) const {
const C& c = a.getC(); // <= compiler complains here
daoObject.updateTableX(c.x,c.y);
}
};
Run Code Online (Sandbox Code Playgroud)
编译器抱怨对象a是const,因此不能调用a.getC(),因为该方法不是const.
但是我将结果分配给const引用.现在我只是将一个对象转换为非const引用,如下所示:
const C& c = ((A&)a).getC();
Run Code Online (Sandbox Code Playgroud)
这有效,但并不优雅.没有改变常数,有没有更好的方法.我相信对于对象A,返回C不是const是合理的,因为它意味着要改变.
forwardInfo也应该是const,因为我不想改变任何东西.
我不确定为什么编译器不允许我这样做并且有更好的方法吗?
PS.我可以使用getter/setter方法,但是C类可以用作传递给数据库的数据桶.
谢谢.
修正:施法中的支架位置和不正确的施法.