如何用const值初始化const对象的非const属性
How to initialize a non-const attribute of a const object with a const value?
我需要实例化类的const对象,并从const指针初始化其成员指针。这可能吗?怎么做呢?
我有这样的东西:
class A:
public Base
{
public:
A():
v(nullptr)
{}
virtual void f() override
{}
private:
my_type *v;
friend void f(const my_type& orig)
{
// How to create a "const A" with "v == &orig" ?
}
};
对象本身是否为常量和它的任何类成员是否为常量是两个完全不同的主题。
类的成员是否可以以特定的方式初始化,并不取决于类的特定实例是否为常量。
指向常量对象的指针不能用于初始化指向非常量对象的指针。你的类成员:
my_type *v;
是一个指向非常量对象的指针(假设my_type
本身不是常量类型)。
因此,该指针不能初始化为指向常量对象。
类的某个包含该成员的实例是否为常量,不作为因子。
相关文章:
- 被解释为低级别const的const对象的地址
- 在 C++ 中声明 const 对象需要用户定义的默认构造函数.如果我有一个可变成员变量,为什么不呢?
- Google Or-Tools Glop:如何创建指向 const 对象的指针数组?
- 我们可以有一个 setter 成员函数作为从 const 对象引用的 const 吗?
- "this"指向的对象是否与 const 对象相同?
- 从 const 对象访问非 const 方法
- 将非 const 对象用于 const 参数
- 如何键入用于const对象的自定义io操纵器
- 哪个 const 与哪个引用将更改参数并创建一个 const 对象?
- 无法在返回中转换 const 对象
- 接受对 const 对象的引用但没有 r 值的函数
- 当我调用 main 中使用 const 对象的 const 函数时,不断出现错误
- 在 const 对象上调用非 const 函数
- 正确的方法通过巨大的const对象的向量
- 如何重载 const 对象的 [],以便值赋值不会导致编译错误
- 相互引用的 Const 对象
- 析构函数是否可以在 const 对象上调用非 const 函数
- decltype 不会推断 const 对象的 const 成员
- 防止const函数被调用非const对象
- constexpr引用非const对象