簡體   English   中英

如何在 CPP 中內聯指針?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM