gpt4 book ai didi

c++ - 发送 2 个整数的数组作为参数

转载 作者:太空狗 更新时间:2023-10-29 20:13:57 24 4
gpt4 key购买 nike

我试图让这段C++代码更抽象,更容易看懂,占用空间更少。它是一个函数,它接受一个字符串和两个整数来表示大小和位置。

HWND CreateButon(string Title, const int[2] Size, const int[2] Position) {
// Create the control, assign title, size and position
// Return HWND
}

HWND MyButton = CreateButton("Button1", [100, 20], [10, 10]);

我知道最后一个是错的。我只是那样写的,所以你可以明白我的意思。我想直接将大小和位置值作为参数发送。我可以使用 structs 但它们必须在之前声明。与其他一些变量相同。我只想将它们作为两个整数组发送到参数中,我想知道是否有解决方法。最重要的是它只是为了让它紧凑和简单。

最佳答案

您可以传递一对而不是数组:

HWND CreateButton(string Title, std::pair<int,int> Size, std::pair<int,int> Position);

CreateButton("Button1", {100, 20}, {10,10}); // C++11
CreateButton("Button1", std::make_pair(100,20), std::make_pair(10,10)); // C++03

或者,仅在 C++11 中,您可以传递 std::array<int,2> .这需要稍微奇怪的聚合初始化 {{100, 20}} , 但意味着您不会失去使用 [] 对其进行索引的能力.

就个人而言,我可能更愿意定义您描述的结构;这将提供更多的类型安全性和 self 文档,我倾向于比紧凑性更看重这些。事实上,我什至可以给他们一个explicit。构造函数(而不是允许列表初始化)所以你必须使用“命名参数”:

CreateButton("Button1", Size(100,20), Position(10,10));

关于c++ - 发送 2 个整数的数组作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18718567/

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