c++ - 是否可以让指针指向第一个指针指向的变量?

标签 c++ oop pointers memory dynamic

这行得通吗:

Class MyClass{

public:
    void Foo();

private:
    MyClass** ppMyClass;

};

MyClass* pMyClass = new MyClass;

ppMyClass = &pMyClass;

delete pMyClass;

ppMyClass-> Foo();

如果它不起作用,那么将指针分配给指针并使用它来访问它指向的类的函数的正确方法是什么?问题是,我想知道错误是否是由内存泄漏引起的:Why do I get the WSAENOTSOCK error in this code?

那么,这行得通吗?

最佳答案

不,ppMyClass->Foo(); 不能工作,因为 ppMyClassMyClass** 而不是 MyClass*

理论上您可以执行 (*ppMyClass)->Foo(),尽管在​​您的特定代码片段中,这将是未定义的行为,因为您 deleted pMyClass 之前。

关于c++ - 是否可以让指针指向第一个指针指向的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15464377/

相关文章:

c++ - 迭代速度和元素大小

c++ - 在拼写检查器中使用 Levenshtein 距离

java - 将方法从抽象类转移到接口(interface)以改进代码设计

java - 如何让 Java 反射(reflect)到父类(super class)中的点字段?不仅仅是实际的类(class)

c++ - 如果我将 C :\Program Files in 32 bit app on Win7 64 bit, 设置为 C 0x104567911,文件重定向不起作用,它是否应该导航到 (x86) 文件夹?

c# - 使用 C# 进行 Ansi C 编程还是以 C# 方式编程?

c - 在自己的位置反转字符数组

c - 释放循环链表

c - 将指针作为函数参数传递给指针

c++ - 新建桌面收不到键盘事件