gpt4 book ai didi

c++ - 初始化时返回一个指针? C++

转载 作者:行者123 更新时间:2023-11-28 04:44:35 26 4
gpt4 key购买 nike

我想知道是否可以在初始化时返回一个指针。我知道我们可以使用 string s("Hi")声明并初始化一个 string s ,但我们可以对指针做同样的事情吗?我想做的是让我的代码尽可能少,以尝试学习优化我的代码,所以我尝试了 queue<string> *p(&item)其中 itemqueue<string> .这行得通;但是,添加 return导致错误“Expected primary-expression before *”。

我的代码片段:

struct parsedObj
{
queue<string> item;
bool operator!() {return !item.empty();}
queue<string>* operator*() {return queue<string> *p(&item);}
};

最佳答案

I want to know if it's possible to return a pointer while initializing it

你总是初始化返回值。没有办法不初始化它。 (好吧,您可能会忘记编写 return 语句,但这会使程序格式错误)。

but can we do the same for a pointer?

是的。

adding return results in the error "Expected primary-expression before *".

此限制也适用于非指针。你不能写 return string s("Hi")例如。

返回语句的语法是attr(optional) return expression(optional) .声明不是表达式。 string s("Hi")queue<string> *p(&item)是声明。


简单使用

return &item;

返回一个指针。无需在该函数中声明任何变量。


附言。从间接运算符返回指向成员的指针似乎很不正常。通常,间接运算符做相反的事情(即间接的操作数是指针,结果是指向的对象)。

关于c++ - 初始化时返回一个指针? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49509935/

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