标题:内联全局变量怎么运行啊?我在main.cpp中加入#include<iostream>也不能运行 ...
只看楼主
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
结帖率:100%
已结贴  问题点数:20 回复次数:12 
内联全局变量怎么运行啊?我在main.cpp中加入#include<iostream>也不能运行
程序代码:
怎么让这三个文件运行?
constants.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
}
constants.h:
#ifndef CONSTANTS_H
#define CONSTANTS_H

 
namespace constants
{//由于实际变量位于名称空间内,因此前向声明也必须位于名称空间内
    // since the actual variables are inside a namespace, the forward declarations need to be inside a namespace as well
    extern const double pi;
    extern const double avogadro;
    extern const double my_gravity;
}

 
#endif
main.cpp:
#include "constants.h" // include all the forward declarations
 
int main()
{
    std::cout << "Enter a radius: ";
    int radius{};
    std::cin >> radius;

 
    std::cout << "The circumference is: " << 2 * radius * constants::pi;
}






//已经解决//
constants.h
#ifndef CONSTANTS_H
#define CONSTANTS_H
 
// define your own namespace to hold constants
namespace constants
{
    inline constexpr double pi { 3.14159 }; // note: now inline constexpr
    inline constexpr double avogadro { 6.0221413e23 };
    inline constexpr double my_gravity { 9.2 }; // m/s^2 -- gravity is light on this planet
    // ... other related constants
}
#endif
main.cpp:

#include "constants.h"
 
int main()
{
    std::cout << "Enter a radius: ";
    int radius{};
    std::cin >> radius;
 
    std::cout << "The circumference is: " << 2 * radius * constants::pi;
}





[此贴子已经被作者于2020-2-23 20:27编辑过]

搜索更多相关主题的帖子: main 运行 std extern double 
2020-02-23 18:19
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:20 
我有点不太懂什么是内联全局变量,我在网上看了一下,inline好像不能修饰常量
我把你的代码复制以后把所有的inline都去掉了,加上#include<iostream>运行都正确了
你在看看吧,反正我是没有见过inline修饰常量的
2020-02-23 19:18
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
inline的使用是有所限制的,inline只适合涵数体内代码简单的涵数使用,不能包含复杂的结构控制语句例如while、switch,并且不能内联函数本身不能是直接递归函数(即,自己内部还调用自己的函数)。
2020-02-23 19:25
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
以下是引用雪影辰风在2020-2-23 19:25:50的发言:

inline的使用是有所限制的,inline只适合涵数体内代码简单的涵数使用,不能包含复杂的结构控制语句例如while、switch,并且不能内联函数本身不能是直接递归函数(即,自己内部还调用自己的函数)。

我在网上查的,估计inline只能修饰函数
2020-02-23 19:26
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:0 
内联全局变量我已经解决了,如果三个文件那怎么解决?

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-23 20:30
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
是那个自定义头文件吗?
2020-02-23 20:33
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
自定义头文件要复制到cpp文件目录下,或者是在""中打上头文件目录,或者是吧头文件加入到编译器的标准头文件库里
2020-02-23 20:38
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:0 
回复 7楼 雪影辰风
这个代码变成一个代码我会做,可是分成三个文件,我就不知道怎么加include“   “这个了

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-23 21:36
雪影辰风
Rank: 6Rank: 6
来 自:衡阳市
等 级:贵宾
威 望:22
帖 子:177
专家分:387
注 册:2019-6-17
得分:0 
我有点没听懂你说的分成三个文件什么的,私聊吧,不占用回复栏,我留个联系方式Q:3359521238,或者是发短信息
2020-02-23 22:50
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:0 
不好意思,刚看见我先把贴结了

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-02-24 13:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499373-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.388775 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved