码迷,mamicode.com
首页 > 编程语言 > 详细

c++变量的声明和定义

时间:2020-09-23 23:06:10      阅读:38      评论:0      收藏:0      [点我收藏+]

标签:test   main   flag   必须   多个   int   parent   相同   window   

1.变量的定义:变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。

2.变量的声明:用于向程序表明变量的类型和名字。程序中变量可以声明多次,但只能定义一次

  • 变量的声明有两种情况
    (1) 一种是分配内存空间的(声明)。例如:int a在声明的时候就已经分配了内存空间。
    (2) 另一种是不需要分配内存空间的(声明)。例如:extern int a其中变量a是在别的文件中定义的。

    第一种是"定义性声明",或者称为”定义",第二种是"引用性声明"。可以理解为声明中包含着定义,但是并非所有的声明都是定义,例如:int a既是声明,同时又是定      
    义。然而对于extern a来讲它只是声明不是定义。
    

3.定义和声明的区别
一般的情况下我们常常这样叙述,把分配内存空间的声明称之为"定义",把不需要分配内存空间称的声明之为"声明"。

extern int a; //声明

int b;	//定义

int b=1;	初始化

b=2;	//赋值

//另外在定义的时候也可以初始化,也就是我们常用的写法
int c=3;

4.为什么需要区分声明和定义:

C++程序通常由许多文件组成。为了让多个文件访问相同的变量,C++区分了声明和定义。任何在多个文件中使用的变量都需要既有定义又有声明。在这种情况下,在一个文件中定义了变量,在其他使用改变了的文件中则只能包含变量的声明(不能再包含定义,因为变量只能定义一次)。

5.真正用的时候 这种需要被别的文件用的变量,必须在本文件中定义好,比如在文件1中定义extern int i=0;然后才可以再别的文件中使用,使用方式是:在类体的外部使用extern int i;这样在这个类中就可以使用该外部变量了,再次强调必须先定义好,才能再别的地方通过extern声明使用。例:

#include <QDebug>
#include "myclass.h"
int test_i;//定义 等同于 extern test_i =0;
MyClass::MyClass(QWidget *parent, Qt::WFlags flags)
 : QMainWindow(parent, flags)
{
 ui.setupUi(this);
 qDebug()<<test_i;
}

MyClass::~MyClass()
{

}



#include "YourClass.h"
//#include "myclass.h"

extern int test_i;//在此类类体外部声明,在此类中即可使用
YourClass::YourClass(void)
{
 test_i++;
 int test_i;
}


YourClass::~YourClass(void)
{
}

c++变量的声明和定义

标签:test   main   flag   必须   多个   int   parent   相同   window   

原文地址:https://www.cnblogs.com/wsl-hitsz/p/13698199.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!