相关疑难解决方法(0)

extern如何在名称空间中工作?

我正在运行一个类似于我在这里找到的简单程序.这意味着在多个文件中包含常量时减少代码膨胀.它通过在命名空间中使用const全局变量及其各自的extern前向声明来实现此目的.

globals.h

#ifndef GLOBALS_H_
#define GLOBALS_H_

namespace Constants
{
    // forward declarations only
    extern const double pi;
    extern const double avogadro;
    extern const double my_gravity;
}

#endif
Run Code Online (Sandbox Code Playgroud)

globals.cpp

namespace Constants
{
    // actual global variables
    extern const double pi(3.14159);
    extern const double avogadro(6.0221413e23);
    extern const double my_gravity(9.2); // m/s^2 -- gravity is light on this planet
}
Run Code Online (Sandbox Code Playgroud)

source.cpp

#include <iostream>
#include <limits>

#include "globals.h"

int main()
{
    double value_of_pi = Constants::pi;

    std::cout << value_of_pi;

    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), …
Run Code Online (Sandbox Code Playgroud)

c++ namespaces const global-variables extern

6
推荐指数
1
解决办法
8470
查看次数

标签 统计

c++ ×1

const ×1

extern ×1

global-variables ×1

namespaces ×1