Item 15: Provide access to raw resources in resource-managing classes.(Effective C++)
2011-03-23 21:06
459 查看
APIs often require access to raw resources, so each RAII class should offer a way to get at the resource it manages.
Access may be via explicit conversion or implicit conversion. In general, explicit conversion is safer, but implicit conversion is more convenient for clients. 1 #include <iostream>
2 using namespace std;
3
4 class Base
5 {
6 public:
7 void test()
8 {
9 cout << "inside base" << endl;
}
};
class Derived
{
private:
Base base;
public:
Base get() const
{
return base;
}
operator Base() const
{
return base;
}
};
int main()
{
Derived d;
d.get().test();
Base b = (Base)d;
b.test();
cin.get();
return 0;
}
Access may be via explicit conversion or implicit conversion. In general, explicit conversion is safer, but implicit conversion is more convenient for clients. 1 #include <iostream>
2 using namespace std;
3
4 class Base
5 {
6 public:
7 void test()
8 {
9 cout << "inside base" << endl;
}
};
class Derived
{
private:
Base base;
public:
Base get() const
{
return base;
}
operator Base() const
{
return base;
}
};
int main()
{
Derived d;
d.get().test();
Base b = (Base)d;
b.test();
cin.get();
return 0;
}
相关文章推荐
- Effective C++ Item 15 Provide access to raw resources in resource-managing classes
- [EffectiveC++]item15:Provide access to raw resources in resource-managing class
- 条款15:在资源管理类中提供对原始资源的访问(Provide access to raw resources in resource-managing classes)
- Item 43: Know how to access names in templatized base classes(Effective C++)
- 读书笔记 effective c++ Item 15 在资源管理类中提供对原生(raw)资源的访问
- effective C++ Item 2: Prefer consts, enums, and inlines to #defines
- Effective C++ Item 10,11 Have assignment operators return a reference to *this Handle assignment to self in operator =
- Item 10:Prevent resource leaks in constructors.(More Effective C++)
- How to synchronize access to a shared resource in a multithreading environment by using Visual C#
- Item 2: Prefer consts, enums, and inlines to #defines(Effective C++)
- [翻译] Effective C++, 3rd Edition, Item 15: 在 resource-managing classes(资源管理类)中提供对 raw resources(裸资源)的访问
- Item 11: Handle assignment to self in operator=(Effective C++)
- 读书笔记 effective c++ Item 15 在资源管理类中提供对原生(raw)资源的访问
- Effective C++ Item 14 Think carefully about copying behavior in resource-managing classe
- 读书笔记 effective c++ Item 15 在资源管理类中提供对原生(raw)资源的访问
- Item 14: Think carefully about copying behavior in resource-managing classes.(Effective C++)
- 读书笔记 effective c++ Item 15 在资源管理类中提供对原生(raw)资源的访问
- 读书笔记 effective c++ Item 15 在资源管理类中提供对原生(raw)资源的访问
- 读书笔记 effective c++ Item 15 在资源管理类中提供对原生(raw)资源的访问
- Item 13: Use objects to manage resources.(Effective C++)