[c++ korea] effective modern c++ study item 5 prefer auto to explicit type declarations +이홍우

Post on 28-Jul-2015

97 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Effective Modern C++ StudyC++ Korea

Effective Modern C++ StudyC++ Korea3

Effective Modern C++ StudyC++ Korea4

Effective Modern C++ StudyC++ Korea5

Effective Modern C++ StudyC++ Korea6

Effective Modern C++ StudyC++ Korea7

Effective Modern C++ StudyC++ Korea8

Effective Modern C++ StudyC++ Korea9

Effective Modern C++ StudyC++ Korea10

#include <vector>

#include <functional>

class DataObject {

public:

typedef std::function<int (const DataObject&)> FuncType;

explicit DataObject(int data, FuncType ft) : m_data(data), m_funcType(ft) {}

int getHealth() const { return m_funcType(*this); }

int m_data;

private:

FuncType m_funcType;

};

int SimpleIntCalc(const DataObject& d) { return d.m_data*1; }

struct FunctorCalc {

public:

int operator () (const DataObject& d) const {

return d.m_data*3;

}

};

int main() {

DataObject o1(10, SimpleIntCalc);

FunctorCalc h;

DataObject o2(20, h);

DataObject o3(30, [] (const DataObject&) { return 30; });std::vector<DataObject> l = {o1, o2, o3};

for (DataObject& i : l)

std::cout << i.getHealth() << std::endl;

return 0;

}

Effective Modern C++ StudyC++ Korea11

Effective Modern C++ StudyC++ Korea12

Effective Modern C++ StudyC++ Korea13

Effective Modern C++ StudyC++ Korea14

Effective Modern C++ StudyC++ Korea15

Effective Modern C++ StudyC++ Korea16

Effective Modern C++ StudyC++ Korea17

Effective Modern C++ StudyC++ Korea18

Effective Modern C++ StudyC++ Korea19

top related