我有一個關於使用typedef
封裝特定類型的快速問題。說我有一個類Foo
其構造函數採用一定的價值,但我想用typedef
隱藏特定類型:如何完全使用typedef隱藏特定類型?
class Foo {
public:
typedef boost::shared_ptr< std::vector<int> > value_type;
Foo(value_type val) : val_(val) {}
private:
value_type val_;
};
但在這種情況下,主要的功能還是必須知道的類型(所以它的明確使用std::vector<int>
):
int main() {
Foo::value_type val(new std::vector<int>());
val->push_back(123);
Foo foo(val);
return 0;
}
我怎樣才能解決這個問題,同時還避免了Foo
構造向量的深層副本?
謝謝,特別是'swap()'操作正是我所需要的。 – Frank 2010-03-10 03:57:34