相关疑难解决方法(0)

喜欢构成而不是继承?

为什么喜欢构图而不是继承呢?每种方法都有哪些权衡取舍?什么时候应该选择继承而不是作文?

language-agnostic oop inheritance composition aggregation

1538
推荐指数
23
解决办法
29万
查看次数

为什么无法引用无效?

为什么无法引用void?我在C++标准中找到的唯一内容就是这一行,见8.3.2.1

指定类型"对cv void的引用"的声明符是不正确的.

为什么会那样?为什么我不能写一个接受一个"通用"的函数void&

为了清楚起见,我没有任何有用的应用程序,使用引用void可能比使用模板更好,但我只是好奇禁止这个结构的基本原理.


为了澄清一点,我理解使用"按原样"引用"无效"将与取消引用指向void的指针一样毫无意义.不过,我可以把它转换为参考TO- sometype.这时候为了使用它,我能不能?事实上,我不明白为什么下面的代码片段可以工作......

void foo(void *data)
{
    int *i = reinterpret_cast<int*>(data);
    // do something with i
}
Run Code Online (Sandbox Code Playgroud)

......虽然这个不能:

void foo(void &data)
{
    int &i = reinterpret_cast<int&>(data);
    // do something with i
}
Run Code Online (Sandbox Code Playgroud)

c++ reference void-pointers

39
推荐指数
4
解决办法
2万
查看次数

Jetpack Compose:通过按钮关闭应用程序

NavController 无法以编程方式弹出堆栈中最新的 @Composable。即,如果它是根页面,则 popBackStack() 不起作用。因此,可以通过点击“关闭”按钮视图来关闭应用程序,并且只有硬件后退键允许离开应用程序。

示例:活动

class AppActivity : ComponentActivity() {
    override fun onCreate(state: Bundle?) {
        super.onCreate(state)
        setContent {
            val controller = rememberNavController()
            NavHost(controller, startDestination = HOME) {
                composable(HOME) { HomePage(controller) }
                ...
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

主页.kt

@Composable
fun HomePage(controller: NavController) {
    Button(onClick = {
        controller.popBackStack()
    }) {
        Text("Exit")
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:

如果使用 Compose Navigation,如何在 onClick 处理程序中关闭应用程序。

kotlin android-jetpack-navigation android-jetpack-compose

23
推荐指数
1
解决办法
3万
查看次数