草庐IT

constness

全部标签

c++ const 成员函数,返回一个 const 指针。但是返回的指针是什么类型的 const?

如果有人问过这个问题,我深表歉意,但是如何在C++中创建一个返回以下场景中的指针的成员函数:1.返回的指针是常量,但是里面的垃圾是可以修改的。2.里面的垃圾是常量,但是返回的指针可以修改。3.垃圾和指针都不能修改。是这样吗:int*constfunc()constconstint*func()constconstint*constfunc()const我读过的所有教程都没有涵盖这种区别。旁注:如果我的方法被声明为const,那么教程会说我不会修改参数。但是在参数是指针的情况下,这对我来说还不够清楚。我的参数是否需要像:一个。voidfunc(constint*constx)const;

c++ const 成员函数,返回一个 const 指针。但是返回的指针是什么类型的 const?

如果有人问过这个问题,我深表歉意,但是如何在C++中创建一个返回以下场景中的指针的成员函数:1.返回的指针是常量,但是里面的垃圾是可以修改的。2.里面的垃圾是常量,但是返回的指针可以修改。3.垃圾和指针都不能修改。是这样吗:int*constfunc()constconstint*func()constconstint*constfunc()const我读过的所有教程都没有涵盖这种区别。旁注:如果我的方法被声明为const,那么教程会说我不会修改参数。但是在参数是指针的情况下,这对我来说还不够清楚。我的参数是否需要像:一个。voidfunc(constint*constx)const;

c++ - constexpr const 与 constexpr 变量?

constexpr意味着const似乎很明显,因此很常见:constexprintfoo=42;//noconsthere但是如果你写:constexprchar*conststr="foo";如果传递了-Wwrite-string标志,则GCC将产生“警告:不推荐从字符串常量到‘char*’的转换”。写作:constexprconstchar*conststr="foo";解决问题。那么constexprconst和constexpr真的一样吗? 最佳答案 问题在于,在变量声明中,constexpr总是将const-ness应用于

c++ - constexpr const 与 constexpr 变量?

constexpr意味着const似乎很明显,因此很常见:constexprintfoo=42;//noconsthere但是如果你写:constexprchar*conststr="foo";如果传递了-Wwrite-string标志,则GCC将产生“警告:不推荐从字符串常量到‘char*’的转换”。写作:constexprconstchar*conststr="foo";解决问题。那么constexprconst和constexpr真的一样吗? 最佳答案 问题在于,在变量声明中,constexpr总是将const-ness应用于

c++ - const_cast<> 的正确用法

一般来说,使用const_cast()通常被认为是一种不好的做法。在C++代码中,因为它(大多数时候)揭示了设计中的缺陷。虽然我完全同意这一点,但我想知道使用const_cast()的案例是什么?是ok和唯一的解决方案。你们能不能给我一些你知道/遇到的例子?非常感谢。 最佳答案 它几乎被设计为仅与不正确const的遗留API一起使用,即使用您无法更改的函数,该函数具有非const接口(interface),但实际上不会改变接口(interface)上的任何内容 关于c++-const_c

c++ - const_cast<> 的正确用法

一般来说,使用const_cast()通常被认为是一种不好的做法。在C++代码中,因为它(大多数时候)揭示了设计中的缺陷。虽然我完全同意这一点,但我想知道使用const_cast()的案例是什么?是ok和唯一的解决方案。你们能不能给我一些你知道/遇到的例子?非常感谢。 最佳答案 它几乎被设计为仅与不正确const的遗留API一起使用,即使用您无法更改的函数,该函数具有非const接口(interface),但实际上不会改变接口(interface)上的任何内容 关于c++-const_c

c++ - 非 const 左值引用

你为什么可以这样做inta;constdouble&m=a;但是当你这样做时inta;double&m=a;你得到一个错误?error:non-constlvaluereferencetotype'double'cannotbindtoavalueofunrelatedtype'int'编辑:更具体地说,我试图了解非常量引用无法绑定(bind)临时对象的原因。 最佳答案 这是因为临时不能绑定(bind)到非常量引用。double&m=a;a是int类型,并且正在转换为double。所以创建了一个临时的。用户定义的类型也是如此。Foo

c++ - 非 const 左值引用

你为什么可以这样做inta;constdouble&m=a;但是当你这样做时inta;double&m=a;你得到一个错误?error:non-constlvaluereferencetotype'double'cannotbindtoavalueofunrelatedtype'int'编辑:更具体地说,我试图了解非常量引用无法绑定(bind)临时对象的原因。 最佳答案 这是因为临时不能绑定(bind)到非常量引用。double&m=a;a是int类型,并且正在转换为double。所以创建了一个临时的。用户定义的类型也是如此。Foo

c++ - 非内置类型的 const 值返回函数的用例是什么?

最近我读到,从函数按值返回来限定非内置类型的返回类型const是有意义的,例如:constResultoperation(){//..dosomething..returnResult(..);}我很难理解这样做的好处,一旦对象返回肯定是调用者的选择来决定返回的对象是否应该是const? 最佳答案 基本上,这里有一点语言问题。std::stringfunc(){return"hai";}func().push_back('c');//Perfectlyvalid,yetnon-sensical返回constrvalues是为了防止这

c++ - 非内置类型的 const 值返回函数的用例是什么?

最近我读到,从函数按值返回来限定非内置类型的返回类型const是有意义的,例如:constResultoperation(){//..dosomething..returnResult(..);}我很难理解这样做的好处,一旦对象返回肯定是调用者的选择来决定返回的对象是否应该是const? 最佳答案 基本上,这里有一点语言问题。std::stringfunc(){return"hai";}func().push_back('c');//Perfectlyvalid,yetnon-sensical返回constrvalues是为了防止这