簡體   English   中英

如何使用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本身不是常量類型)。

因此,無法將此指針初始化為指向常量對象。

包含此成員的類的某些實例是否恆定,不是一個因素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM