我可以先得到一個默認的結構物件,然后得到一個指向它的指標。但我懷疑一定有一些優雅的方式來做到這一點;可能在一個宣告中。
auto defaultStructObject = SomeStruct{};
auto pointerToDefaultStructObject = &defaultStructObject;
uj5u.com熱心網友回復:
但我懷疑一定有一些優雅的方式來做到這一點;可能在一個宣告中。
如果你堅持在一行中,一種快速的方法是立即呼叫 lambda 函式,它創建一個靜態的,SomeStruct并在那里延長生命周期并且可以尋址:
struct SomeStruct { std::string name{}; };
int main()
{
SomeStruct* ptrStruct = []{ static SomeStruct obj{"default"}; return &obj; }();
std::cout << ptrStruct->name; // prints "default"
}
觀看演示
uj5u.com熱心網友回復:
您可能可以使用 main 函式中的第一行。
class MyClass {
public:
MyClass() {};
void Print() const {std::cout << "hello world \n";}
};
int main() {
auto* pObj = new MyClass();
pObj->Print();
return 0;
}
uj5u.com熱心網友回復:
auto defaultStructObject = SomeStruct{}, *pointerToDefaultStructObject = &defaultStructObject;
在線演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/330030.html
上一篇:sprintf的最佳實踐?
