2017-12-05 9 views
0

個人的にプロパティを設定する方法で作成する/デザインすることは可能ですが、プロパティをコンシューマに取得する機能のみが公開されていますか?C++/CXプロパティのプライベートセッターは何ですか?

私は、基本クラスラッパーを具象クラスラッパーのメンバーにすることで、複数の継承プロパティに取り組んできました。私はむしろ、誰かがそれ自身のプロパティのセットの基本クラスのインスタンスを上書きすることを許可しません。しかし、setを除外して基本プロパティを設定することはできません。私はsetをプライベートにすることはできません。

アイデア?

コード:

ConcreteClassWrapper(); // here I want to setup base class, i.e. give it a pointer to the actual C++ model I'm working with. 

property BaseClassWrapper^ BaseClass 
{ 
    BaseClassWrapper^ get() { return baseClass; } 

    // I want to avoid giving my consumers the ability to set this property. 
    void set(BaseClassWrapper^ value) { baseClass= value; } 
} 

private: 
    BaseClassWrapper^ baseClass; // Having a base class wrapper makes it easier on code writing.. i.e. I don't need to implement interfaces. I just want to use my C++ code in C# Microsoft GOD!!! 

EDIT:

私は馬鹿だ、私はプライベートメンバにアクセスすることができます...

答えて

0

これはほんの一の答えです...それでも知りたいですなぜプライベートセッターはものではない

私のConcreteClassWrapper私のプライベートメンバーにアクセスしてそこに基本クラスを設定する必要があります。その後、BaseClassWrapperプロパティのsetを削除できます。

0

あなたはこれを試していました:

property BaseClassWrapper^ BaseClass 
{ 
    BaseClassWrapper^ get() { return baseClass; } 
    private: 
     void set(BaseClassWrapper^ value) { baseClass= value; } 
} 

をこれは、あなたが財産の民間セッターを書く方法です。 C++/CXの場合、propertyキーワードはC++/CXコンパイラがC++コードを生成できるようにするための新しいキーワードに過ぎないため、private、public、protectedなどの構文は同じです。

関連する問題