首页 > 编程语言 >C++快速入门 第四十三讲:链接和作用域2

C++快速入门 第四十三讲:链接和作用域2

时间:2023-08-18 15:45:57浏览次数:39  
标签:short 作用域 unsigned long header C++ 第四十三 全局变量

 1 header.h文件
 2 
 3 #ifndef HEADER_H
 4 #define HEADER_H
 5 
 6 unsigned long returnFactorial(unsigned short num);
 7 static const unsigned short headerNum = 5;//定义静态恒定值的全局变量 
 8 
 9 #endif
10 
11 that.cpp文件:
12 
13 #include "header.h"
14 unsigned short thatNum = 8;//定义全局变量 
15 bool printMe = true;//定义全局变量 
16 
17 unsigned long returnFactorial(unsigned short num)
18 {
19     unsigned long sum = 1;
20     
21     for(int i = 1;i<=num;i++)
22     {
23         sum *= i;
24     }
25     if(printMe)
26     {
27         return sum;
28     }
29     else
30     {
31         return 0;
32     }
33 }
34 
35 this.cpp文件:
36 
37 #include "header.h"
38 #include "iostream"
39 using namespace std;
40 extern unsigned short thatNum;//声明全局变量 
41 static bool printMe = false;//定义静态全局变量 
42 int main()
43 {
44     unsigned short thisNum = 10;
45     cout << thisNum << "! is equal to " << returnFactorial(thisNum) << "\n\n";
46     cout << thatNum << "! is equal to " << returnFactorial(thatNum) << "\n\n";
47     cout << headerNum << "! is equal to " << returnFactorial(headerNum) << "\n\n";
48     if(printMe)
49     {
50         cout << "小甲鱼真帅!\n\n";
51     }
52     return 0;
53 }

标签:short,作用域,unsigned,long,header,C++,第四十三,全局变量
From: https://www.cnblogs.com/ybqjymy/p/17640674.html

相关文章

  • C++快速入门 第四十五讲:类模板
    类模板与函数模板非常相似,同样是先由你编写一个类的模板,再由编译器在你第一次使用这个模板时生成的实际代码。实例:栈的出入栈1#include<iostream>2#include<string>34template<classT>5classStack//栈类6{7public:8Stack(unsignedintsize=......
  • C++快速入门 第四十四讲:函数模板swap使用
    泛型编程技术支持程序员创建函数和类的蓝图(即模板,template),而不是具体的函数和类。标准模板库STL(StandardTemplateLibrary),STL库是泛型编程技术的经典之作,它包含了许多非常有用的数据类型和算法。当拥有一个模板时,编译器将根据模板自动创建一个函数,该函数会使用正确的数据类型......
  • C++快速入门 第四十六讲:内联模板
    内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时类似宏替换,使用函数体替换调用处的函数名。(在程序中,调用其函数时,该函数在编译时被替换,而不是像一般函数那样是在运行时被调用)实例:栈1#include<iostream>2#include<string>34template<class......
  • C++快速入门 第四十七讲:容器和算法
    C++标准库提供的向量(vector)类型从根本上解决了数组先天不足的问题(内存固定,如果不用那么多内存编译器也会为其分配)我们用不着对一个向量能容纳多少元素做出限定,因为向量可以动态地随着你往它里面添加元素而无限增大。还可以用它的size()方法查知某给定向量的当前长度(即包含的元素......
  • C++快速入门 第三十六讲:副本构造器
    我们可以把一个对象赋值给一个类型与之相同的变量,编译器将生成必要的代码把“源”对象各属性的值分别赋值给“目标”对象的对应成员。这种赋值行为称之为逐位复制。(但如果某些成员变量是指针的话,对象成员逐位复制的结果是你将拥有两个一模一样的实例,而这两个副本里的同名指针会指......
  • C++快速入门 第三十八讲:避免内存泄漏
    如果程序会运行很长时间(例如在服务器上,注意不是所有的操作系统都像windows一样每天都要重启),并且在不停地申请新的内存块,忘记释放那些已经不再有用的老内存迟早会把内存消耗殆尽,直接导致后边的new操作无法执行甚至崩溃。动态内存是没有作用域的,所以必须由程序员来跟踪它们......
  • C++快速入门 第三十七讲:高级强制类型转换
    实例1:静态强制转换1#include<iostream>2#include<string>34usingnamespacestd;5classCompany6{7public:8Company(stringtheName,stringproduct);9virtualvoidprintInfo();1011protected:12stringname;13......
  • C++快速入门 第二十七讲:运算符左移<<重载
    一般来说,在调用operator<<()重载函数时,传递给它的是哪一个流,它返回的就应该是那个流的一个引用。实例:左移操作符重载1#include<iostream>2#include<string>3#include<math.h>45usingnamespacestd;6classRational//定义基类7{8public:......
  • C++快速入门 第二十八讲:多继承(multiple inheritance)
    1多继承语法:23//助教类既继承于老师类,又继承于学生类4classAssistant:publicTeacher,publicStudent5{6};78当遇到的问题无法只用一个“是一个”关系来描述的时候,就是多继承出场的时候。例即是学生,又是人,还是助教。910#include<iostre......
  • C++快速入门 第三十讲:错误处理和调试
    程序出错可以分为两大类:编译时出错(complie-timeerror)和运行时错误(run-timeerror)suggest1:培养并保持一种编程风格suggest2:认真对待编译器给出的错误/警告信息suggest3:写代码三思而后行(先画流程图)suggest4:注意检查最基本的语法suggest5:把可能有问题的代码行注释suggest......