指针如何与面向对象编程的概念一起工作?指针和面向对象编程
据我了解(请认识到,我被归类为ID-10T),OOP的主要原则是包含在课堂中的遏制和管理责任(记忆/实施等);但是当一个对象的方法返回一个指针时,好像我们是'弹出'的对象。现在,有人可能需要担心:
- 是否他们应该删除指针的关联对象?
- 但是如果班级仍然需要这个对象呢?
- 他们可以改变对象吗?如果是这样,怎么样? (我承认
const
可能会解决这个问题) - 等等...
看来对象的用户现在需要知道多更多关于如何类作品和什么类预计用户。这感觉就像是一只“猫没有包装”的情景,似乎在OOP面前拍了拍。
注:我注意到,这是一个独立于语言的问题;但是,在C++环境中工作时,系统提示我提问。
在C++ 11中,原始指针只能用于表示无所有权。 –
我会研究“const vs nonconst”,“指针vs参考”,“左值vs右值”和“std :: unique_ptr”,“std :: shared_ptr”和“std :: weak_ptr”。人们抱怨C++中存在复杂的内存管理问题,这些问题在其他语言(如Java和C#)中被渲染 - 然而还有一个好处:性能。 –