[英]How do I inline a pointer in CPP?
嘿,我是來自 java 的 C++ 新手,我不明白如何做到這一點:
std::string some_string = "some text";
string* some_pointer = &some_string;
都在一行中。 我在想什么的例子:
void some_function(string* some_pointer);
some_function(get_pointer_of("test"));
你不能1 。
您可以在表達式中內聯創建臨時對象,但不能直接獲取它們的地址。 相反,您可以內聯獲取值的地址,但不能使用右值執行此操作。
1 ...以一種簡單的方式。 你應該避免用復雜的技巧來做。
這可以做到,但這將是一種不好的做法。 您必須在函數內部處理指針或再次返回地址以稍后處理。
一個例子
#include <string>
#include <iostream>
std::string* fun(std::string * str){
std::cout << *str;
*str = "ff";
return str;
}
int main(){
auto ptr = fun( new std::string{"ee"});//u have (new std::string{"ee"}) in one line
std::cout << "\n" << *ptr ;
delete ptr;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.