1

次のテンプレートがあるとします。

template<typename T>
class MyClass
{
public:
    .............
private:
   T _data;
}

私が使用する場合、T は常に構造体 (データのみ) です。例えば、

struct ST1{
    int a;
    int b;
};
struct ST2{
    int a1;
    int b1;
    int c1;
}

MyClass の特定のインスタンス (例: ) について、またはMyClass<struct ST1> myinstanceにアクセスしたいと考えています。私が考えることができる1つの一般的な方法は、次のように MyClass でメソッドを定義することですmyinstance.data.amyinstance.data.b

void MyClass::write(T const &){ _data = T;}
T    MyClass::read(){return _data;}

しかし問題は、読み取りと書き込みのたびに、_data.

ありがとう

4

2 に答える 2

1

どうですか...

const T& MyClass::GetData() const { return _data; }
T& MyClass::GetData() { return _data; }

その後、あなたはただすることができます...

myClass.GetData().a = 17;

公開することもできます_data

于 2013-06-13T18:36:03.777 に答える