相关疑难解决方法(0)

C static keyword vs C++ private scope?

C中翻译单元本地static函数的C++等价是多少?
例如,具有以下内容bar.c:

static void bar() {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

在C++中,它是否会像一个私有成员函数一样编写

class foo {
    void bar();
};

void foo::bar() {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

私有成员函数隐式地将this指针引入为参数,因此它与C样式static函数不具有可比性.但即使是private static成员函数bar()也会在公共接口中看到(并且对于链接器而言仍然可访问),并且也不具有可比性.

虽然这些函数的可访问范围似乎相似,但这些选项看起来不像上面提到的C风格static函数语法的良好替代.

等效于未命名命名空间中的函数,仅对当前转换单元可见吗?

namespace {
    void bar() {
       // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

c c++

-1
推荐指数
1
解决办法
1224
查看次数

标签 统计

c ×1

c++ ×1