我創建了一個結構和無效函式。我想用void abc在結構xyz里面寫出年齡和名字。但我不明白,我在case 1-2部分得到一個錯誤
。型別名稱是不允許的#include <iostream> 使用 命名空間 std.com.cn>。 struct xyz { int age = 20; string name = "name"; }; void abc() { int num; cingt;> num。 switch (num) { case 1: cout << xyz.age < < endl; return; case 2: cout << xyz.name < < endl; return; } int main() { for(;;) abc()。uj5u.com熱心網友回復:
你必須這樣做 -
#include <iostream> 使用 命名空間 std.com.cn>。 struct xyz { int age = 20; string name = "name"; }; void abc() { xyz myStruct; int num; Cin >> num; switch (num) { case 1: cout << myStruct.age < < endl; return; case 2: cout << myStruct.name < < endl; return; } } int main() { for(;;) abc()。另一個選擇是這樣的 -
#include <iostream> 使用 命名空間 std.com.cn>。 struct xyz { int age。 字串名稱。 }; void abc() { xyz myStruct{20, "name"}。 int num; Cin >> num; switch (num) { case 1: cout << myStruct.age < < endl; return; case 2: cout << myStruct.name < < endl; return; } } int main() { for(;;) abc()。uj5u.com熱心網友回復:
你沒有創建一個你的型別的實體,即結構
。xyz,讓我們創建一個名為static_instance的實體,并將你的代碼修正為接近你的意圖的東西#include <iostream> #include <string> 結構 xyz { int age = 20; std::string name = "name"; } static_instance。 void abc() { int num{}; std::cin >> num。 switch (num) { case 1: std::cout << static_instance.age << " "。 break。 case 2: std::cout << static_instance.name << " "。 break; } } int main() { while (true) { abc()。 }請注意,你似乎缺乏許多C 的基本原則,首先是改進,函式
abc應該是一個成員方法,或者采取一個對你的結構的參考。另外,在靜態的即全域的變數之前,更喜歡 "堆疊 "或自動存盤的變數,即實體。比如#include <iostream> #include <string> 結構 xyz { int age = 20; std::string name = "name"; }; void print(const xyz& instance){ int num{}; std::cin >> num。 switch (num) { case 1: std::cout << instance.age << " "。 break。 case 2: std::cout << instance.name << " "。 break; } } int main() { xyz實體{}。 while (true) { print(instance)。 } }轉載請註明出處,本文鏈接:https://www.uj5u.com/net/333759.html
標籤:
上一篇:在兼容模式下正確使用JQuery
下一篇:C 的std::conditional_t不會與std::is_enum_v和std::underlying_type_t一起編譯。
