gpt4 book ai didi

c++ - 私有(private)静态成员函数 vs 私有(private)成员函数

转载 作者:行者123 更新时间:2023-11-28 04:03:52 28 4
gpt4 key购买 nike

如果需要在类外访问静态(例如单例),可以选择公共(public)静态而不是私有(private)静态,而当不需要公开函数时首选私有(private)静态(否则未命名的命名空间就可以了)——在这种情况下它只能通过静态成员函数或其他非静态成员函数访问

然而,我试图了解为什么人们会选择 private static 而不是 private 成员函数的核心思想?当然,两者都可以访问类的私有(private)成员(或传递的任何对象),静态成员明确要求传递一个对象,但为什么我不能通过将其设为私有(private)非静态来保持我的设计开放成员函数,即使它不需要访问私有(private)成员(就像静态成员函数一样)。这样,即使将来我需要访问一些私有(private)成员,我也可以避免将静态内存函数转换为非静态内存函数——我知道这没什么大不了的/改变,但仍然有人能给我一个关于何时和何时的清晰想法为什么要选择一个而不是另一个?

最佳答案

当您有一个static 成员变量时,您可以像选择一个非static 成员变量一样选择它的访问级别。这里没有什么“特别”的。

我的大多数私有(private) static 都倾向于像内置常量之类的东西,它们只被类的内部使用。

我承认我想不出它们的许多其他用例,但如果逻辑上与该类的一个特定实例(因此不需要非静态成员访问)——这可能比某些人沉溺于此更强制症。

why can't i keep my design open by making it a private Non-Static member function even if it doesn't need access to private members(just like static member functions)

可以。这取决于你。

This way even if in future i require to access some private members i save myself from converting static to non-static mem func

当然。我的意思是,它是一个 关键字。但是,如果您需要防止 header 发生变化(例如,您正在部署它们),这种“前向兼容性”可能会有用。可以说,这是将 static 成员设为私有(private)的一个缺点,实际上并没有太多可靠的优点。同样,这取决于您。

关于c++ - 私有(private)静态成员函数 vs 私有(private)成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59068563/

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