1

一部の C# コードを C++ に変換しています。

次のデータ型に遭遇しました。

public interface FooBar
{
     string Name { get; }
     decimal Weight { get; }
     int AgeInYears { get; }
}

これを C++ ヘッダーで宣言したいのですが、これにアプローチする最善の方法が何であるかはわかりません。提案をいただければ幸いです。

PS: 私は Qt を使用しています (ただし、それは初めてです)。したがって、Qt の機能 ( Q_PROPERTY、 Q_INTERFACE ) などを使用しても構わないと思っています。

4

3 に答える 3

3
class FooBar {
public:
    QString  getName() = 0;
    double   getWeight() = 0;
    int      getAgeInYears() = 0;
};

Don't forget to inherit it as public: NewClass : public FooBar { ... };.

You absolutely have to declare it yourself, since Q_INTERFACE and Q_PROPERTY are used to decorated such declarations and inform Qt that they may be used in wacky Qt ways.

于 2012-12-26T14:31:54.647 に答える
2

そのようなものはトリックを行います:

クラスFooBar
{
公衆:
    std::string GetName(){ return _name; }
プライベート:
    std::string _name;
}
于 2012-12-26T14:35:53.727 に答える
1

C++ でそれを行うことはできません。唯一の可能性は、プロパティを非公開にし、アクセサーを書き込むことです。あなたのためにそれを行う構文シュガーはありません。ただし、一部の IDE ではコードが生成される場合があります。

于 2012-12-26T14:23:11.937 に答える