小编Jaa*_*rts的帖子

如何判断win32应用程序是否使用.NET运行时

如何判断可执行文件是否为.NET应用程序?

我不想安装Visual Studio.但如果我必须,我会.命令行程序是首选.

.net executable

6
推荐指数
4
解决办法
6678
查看次数

C++ constness by assignment

如果以前回答过这个问题我很抱歉,我无法在任何地方找到答案.

我在保持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类可以用作传递给数据库的数据桶.

谢谢.

修正:施法中的支架位置和不正确的施法.

c++ const reference const-correctness

2
推荐指数
1
解决办法
103
查看次数

标签 统计

.net ×1

c++ ×1

const ×1

const-correctness ×1

executable ×1

reference ×1