1 //===-- main.cpp ------------------------------------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #include <string>
11 #include <vector>
12 #include <iostream>
13
14 class NameAndAddress
15 {
16 public:
GetName()17 std::string& GetName() { return *m_name; }
GetAddress()18 std::string& GetAddress() { return *m_address; }
NameAndAddress(const char * N,const char * A)19 NameAndAddress(const char* N, const char* A) : m_name(new std::string(N)), m_address(new std::string(A))
20 {
21 }
~NameAndAddress()22 ~NameAndAddress()
23 {
24 }
25
26 private:
27 std::string* m_name;
28 std::string* m_address;
29 };
30
31 typedef std::vector<NameAndAddress> People;
32
main(int argc,const char * argv[])33 int main (int argc, const char * argv[])
34 {
35 People p;
36 p.push_back(NameAndAddress("Enrico","123 Main Street"));
37 p.push_back(NameAndAddress("Foo","10710 Johnson Avenue")); // Set break point at this line.
38 p.push_back(NameAndAddress("Arpia","6956 Florey Street"));
39 p.push_back(NameAndAddress("Apple","1 Infinite Loop"));
40 p.push_back(NameAndAddress("Richard","9500 Gilman Drive"));
41 p.push_back(NameAndAddress("Bar","3213 Windsor Rd"));
42
43 for (int j = 0; j<p.size(); j++)
44 {
45 NameAndAddress guy = p[j];
46 std::cout << "Person " << j << " is named " << guy.GetName() << " and lives at " << guy.GetAddress() << std::endl;
47 }
48
49 return 0;
50
51 }
52
53