프로그래밍 | 2012. 2. 21. 23:22
1 2 | v.push_back(boost::shared_ptr< int >( new int (1))); </ int > |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | class PtrTest { public : PtrTest() {value_ = 0;}; ~PtrTest() {}; PtrTest( const PtrTest& other) { std::cout << "Copy Const" << std::endl; value_ = other.value_; } PtrTest& operator=( const PtrTest& rhs) { if ( this == &rhs) { return * this ; } std::cout << "= Operator" << std::endl; this ->value_ = rhs.value_; return * this ; } void SetValue( int value) {value_ = value;} int GetValue() { return value_;} private : int value_; }; TEST(PtrVectorTest, ptr_vector_test) { boost::ptr_vector<ptrtest> ptr_vector; PtrTest* test_a = new PtrTest; test_a->SetValue(1); PtrTest* test_b = new PtrTest; test_b->SetValue(2); ptr_vector.push_back(test_a); ptr_vector.push_back(test_b); ptr_vector.push_back( new PtrTest); PtrTest* test_ptr = &ptr_vector[0]; EXPECT_EQ(1, test_ptr->GetValue()); PtrTest test_ptr_2 = ptr_vector[1]; EXPECT_EQ(2, test_ptr_2.GetValue()); EXPECT_EQ(3, ptr_vector.size()); ptr_vector.erase(ptr_vector.begin()); EXPECT_EQ(2, ptr_vector.size()); } </ptrtest> |
기본 생성자와 생성자 오버로딩 (0) | 2012.09.08 |
---|---|
eclipse에 pydev 설정 에러 처리 (0) | 2012.06.18 |
Office Add-in 만들기. (0) | 2012.02.08 |
Lua 테이블 내용 출력하기 (0) | 2012.01.28 |
Lua Table 복사에 대한 처리 (0) | 2012.01.16 |