gpt4 book ai didi

c++ - 在 C++ 中指向 this 的指针

转载 作者:太空狗 更新时间:2023-10-29 19:39:38 24 4
gpt4 key购买 nike

我想写一行代码返回一个指向this的指针,因为数组 ( std::vector<foo**> )。我想过使用引用 ( &this ),但它没有用。

如果需要任何说明,请告诉我。

编辑:为了阐明我在做什么,我试图直接使用数组访问对象。像这样:(*ARRAY.at(i))->foo("bar"); .有人说做指针是不可能的。如果是这样,我将如何使用数组直接访问对象?

最佳答案

你不能有一个指向this的指针,因为它不是一个变量,它是一个保留关键字,转换为指向当前对象的指针。

在编译器实现中,可能有一个支持this 指针的函数的局部变量,但它是一个实现细节,程序员无法访问它的地址。

你试图做的事情非常邪恶,但如果你真的真的想这样做,你将不得不自己创建变量:

foo** evil_ptr_to_ptr = new foo*(this);
ARRAY.push_back(evil_ptr_to_ptr);

在未来的某个时候你将不得不删除它:

// assuming you got all the elements in the array in the same way:
for(int i = 0; i < ARRAY.size(); ++i) {
delete ARRAY[i];
}

关于c++ - 在 C++ 中指向 this 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11299114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com