const的目的是什么?
const Object myFunc(){
return myObject;
}
Run Code Online (Sandbox Code Playgroud)
我刚刚开始阅读Effective C++,而第3项提倡这一点,Google搜索也提出了类似的建议,但也有反作用.我看不出在这里使用const会更好.假设需要按值返回,我认为没有任何理由保护返回的值.给出为什么这可能有用的示例是防止返回值的意外bool强制转换.实际问题是应该使用explicit关键字来防止隐式bool强制转换.
在这里使用const可以防止在没有赋值的情 所以我无法用这些对象执行算术表达式.似乎没有一个未命名的const有用的情况.
在这里使用const获得了什么,何时更可取?
编辑:将算术示例更改为修改在分配之前可能要执行的对象的任何函数.
我有一个类和一个const变量.
struct A
{
int b;
};
A const a;
Run Code Online (Sandbox Code Playgroud)
该类A是POD,可以像这样初始化.
A const a = { 3 };
Run Code Online (Sandbox Code Playgroud)
恕我直言,有这样的构造函数看起来很好.
struct A
{
int b;
A(int newB) : b(newB)
{
}
};
Run Code Online (Sandbox Code Playgroud)
但Clang假定A为非聚合类型.为什么我不能有这样的构造函数?或者我应该做些什么?
我修改了问题来表达我原来的意思.我已经写了struct为class错误,并抱歉@Johannes约困惑:)